home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue42 / opengl / opengl.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-06-17  |  75.2 KB  |  1,847 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Runtime Library                  }
  5. {       OpenGL interface unit                           }
  6. {                                                       }
  7. {*******************************************************}
  8.  
  9. (*
  10. ** Copyright 1991-1993, Silicon Graphics, Inc.
  11. ** All Rights Reserved.
  12. **
  13. ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  14. ** the contents of this file may not be disclosed to third parties, copied or
  15. ** duplicated in any form, in whole or in part, without the prior written
  16. ** permission of Silicon Graphics, Inc.
  17. **
  18. ** RESTRICTED RIGHTS LEGEND:
  19. ** Use, duplication or disclosure by the Government is subject to restrictions
  20. ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  21. ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  22. ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  23. ** rights reserved under the Copyright Laws of the United States.
  24. *)
  25.  
  26. unit Opengl;
  27.  
  28. interface
  29.  
  30. uses Windows;
  31.  
  32. type
  33.   {$EXTERNALSYM HGLRC}
  34.   HGLRC = THandle;
  35.  
  36. type
  37.   GLenum = Cardinal;
  38.   GLboolean = BYTEBOOL;
  39.   GLbitfield = Cardinal;
  40.   GLbyte = Shortint;   { signed char }
  41.   GLshort = SmallInt;
  42.   GLint = Integer;
  43.   GLsizei = Integer;
  44.   GLubyte = Byte;
  45.   GLushort = Word;
  46.   GLuint = Cardinal;
  47.   GLfloat = Single;
  48.   GLclampf = Single;
  49.   GLdouble = Double;
  50.   GLclampd = Double;
  51.  
  52.   PGLBoolean = ^GLBoolean;
  53.   PGLByte = ^GLByte;
  54.   PGLShort = ^GLShort;
  55.   PGLInt = ^GLInt;
  56.   PGLSizei = ^GLSizei;
  57.   PGLubyte = ^GLubyte;
  58.   PGLushort = ^GLushort;
  59.   PGLuint = ^GLuint;
  60.   PGLclampf = ^GLclampf;
  61.   PGLfloat =  ^GLFloat;
  62.   PGLdouble = ^GLDouble;
  63.   PGLclampd = ^GLclampd;
  64.  
  65.   TGLArrayf4 = array [0..3] of GLFloat;
  66.   TGLArrayf3 = array [0..2] of GLFloat;
  67.   TGLArrayi4 = array [0..3] of GLint;
  68.   {...}
  69.  
  70. {*************************************************************}
  71.  
  72. const
  73. { AttribMask }
  74.   GL_CURRENT_BIT                      = $00000001;
  75.   GL_POINT_BIT                        = $00000002;
  76.   GL_LINE_BIT                         = $00000004;
  77.   GL_POLYGON_BIT                      = $00000008;
  78.   GL_POLYGON_STIPPLE_BIT              = $00000010;
  79.   GL_PIXEL_MODE_BIT                   = $00000020;
  80.   GL_LIGHTING_BIT                     = $00000040;
  81.   GL_FOG_BIT                          = $00000080;
  82.   GL_DEPTH_BUFFER_BIT                 = $00000100;
  83.   GL_ACCUM_BUFFER_BIT                 = $00000200;
  84.   GL_STENCIL_BUFFER_BIT               = $00000400;
  85.   GL_VIEWPORT_BIT                     = $00000800;
  86.   GL_TRANSFORM_BIT                    = $00001000;
  87.   GL_ENABLE_BIT                       = $00002000;
  88.   GL_COLOR_BUFFER_BIT                 = $00004000;
  89.   GL_HINT_BIT                         = $00008000;
  90.   GL_EVAL_BIT                         = $00010000;
  91.   GL_LIST_BIT                         = $00020000;
  92.   GL_TEXTURE_BIT                      = $00040000;
  93.   GL_SCISSOR_BIT                      = $00080000;
  94.   GL_ALL_ATTRIB_BITS                  = $000fffff;
  95.  
  96. { ClearBufferMask }
  97. {      GL_COLOR_BUFFER_BIT }
  98. {      GL_ACCUM_BUFFER_BIT }
  99. {      GL_STENCIL_BUFFER_BIT }
  100. {      GL_DEPTH_BUFFER_BIT }
  101.  
  102. { Boolean }
  103.   GL_FALSE                            = 0;
  104.   GL_TRUE                             = 1;
  105.  
  106. { BeginMode }
  107.   GL_POINTS                           = $0000    ;
  108.   GL_LINES                            = $0001    ;
  109.   GL_LINE_LOOP                        = $0002    ;
  110.   GL_LINE_STRIP                       = $0003    ;
  111.   GL_TRIANGLES                        = $0004    ;
  112.   GL_TRIANGLE_STRIP                   = $0005    ;
  113.   GL_TRIANGLE_FAN                     = $0006    ;
  114.   GL_QUADS                            = $0007    ;
  115.   GL_QUAD_STRIP                       = $0008    ;
  116.   GL_POLYGON                          = $0009    ;
  117.  
  118. { AccumOp }
  119.   GL_ACCUM                            = $0100;
  120.   GL_LOAD                             = $0101;
  121.   GL_RETURN                           = $0102;
  122.   GL_MULT                             = $0103;
  123.   GL_ADD                              = $0104;
  124.  
  125. { AlphaFunction }
  126.   GL_NEVER                            = $0200;
  127.   GL_LESS                             = $0201;
  128.   GL_EQUAL                            = $0202;
  129.   GL_LEQUAL                           = $0203;
  130.   GL_GREATER                          = $0204;
  131.   GL_NOTEQUAL                         = $0205;
  132.   GL_GEQUAL                           = $0206;
  133.   GL_ALWAYS                           = $0207;
  134.  
  135. { BlendingFactorDest }
  136.   GL_ZERO                             = 0;
  137.   GL_ONE                              = 1;
  138.   GL_SRC_COLOR                        = $0300;
  139.   GL_ONE_MINUS_SRC_COLOR              = $0301;
  140.   GL_SRC_ALPHA                        = $0302;
  141.   GL_ONE_MINUS_SRC_ALPHA              = $0303;
  142.   GL_DST_ALPHA                        = $0304;
  143.   GL_ONE_MINUS_DST_ALPHA              = $0305;
  144.  
  145. { BlendingFactorSrc }
  146. {      GL_ZERO }
  147. {      GL_ONE }
  148.   GL_DST_COLOR                        = $0306;
  149.   GL_ONE_MINUS_DST_COLOR              = $0307;
  150.   GL_SRC_ALPHA_SATURATE               = $0308;
  151. {      GL_SRC_ALPHA }
  152. {      GL_ONE_MINUS_SRC_ALPHA }
  153. {      GL_DST_ALPHA }
  154. {      GL_ONE_MINUS_DST_ALPHA }
  155.  
  156. { BlendingMode }
  157. {      GL_LOGIC_OP }
  158.  
  159. { ColorMaterialFace }
  160. {      GL_FRONT }
  161. {      GL_BACK }
  162. {      GL_FRONT_AND_BACK }
  163.  
  164. { ColorMaterialParameter }
  165. {      GL_AMBIENT }
  166. {      GL_DIFFUSE }
  167. {      GL_SPECULAR }
  168. {      GL_EMISSION }
  169. {      GL_AMBIENT_AND_DIFFUSE }
  170.  
  171. { CullFaceMode }
  172. {      GL_FRONT }
  173. {      GL_BACK }
  174. {      GL_FRONT_AND_BACK }
  175.  
  176. { DepthFunction }
  177. {      GL_NEVER }
  178. {      GL_LESS }
  179. {      GL_EQUAL }
  180. {      GL_LEQUAL }
  181. {      GL_GREATER }
  182. {      GL_NOTEQUAL }
  183. {      GL_GEQUAL }
  184. {      GL_ALWAYS }
  185.  
  186. { DrawBufferMode }
  187.   GL_NONE                             = 0;
  188.   GL_FRONT_LEFT                       = $0400;
  189.   GL_FRONT_RIGHT                      = $0401;
  190.   GL_BACK_LEFT                        = $0402;
  191.   GL_BACK_RIGHT                       = $0403;
  192.   GL_FRONT                            = $0404;
  193.   GL_BACK                             = $0405;
  194.   GL_LEFT                             = $0406;
  195.   GL_RIGHT                            = $0407;
  196.   GL_FRONT_AND_BACK                   = $0408;
  197.   GL_AUX0                             = $0409;
  198.   GL_AUX1                             = $040A;
  199.   GL_AUX2                             = $040B;
  200.   GL_AUX3                             = $040C;
  201.  
  202. { ErrorCode }
  203.   GL_NO_ERROR                         = 0;
  204.   GL_INVALID_ENUM                     = $0500;
  205.   GL_INVALID_VALUE                    = $0501;
  206.   GL_INVALID_OPERATION                = $0502;
  207.   GL_STACK_OVERFLOW                   = $0503;
  208.   GL_STACK_UNDERFLOW                  = $0504;
  209.   GL_OUT_OF_MEMORY                    = $0505;
  210.  
  211. { FeedBackMode }
  212.   GL_2D                               = $0600;
  213.   GL_3D                               = $0601;
  214.   GL_3D_COLOR                         = $0602;
  215.   GL_3D_COLOR_TEXTURE                 = $0603;
  216.   GL_4D_COLOR_TEXTURE                 = $0604;
  217.  
  218. { FeedBackToken }
  219.   GL_PASS_THROUGH_TOKEN               = $0700;
  220.   GL_POINT_TOKEN                      = $0701;
  221.   GL_LINE_TOKEN                       = $0702;
  222.   GL_POLYGON_TOKEN                    = $0703;
  223.   GL_BITMAP_TOKEN                     = $0704;
  224.   GL_DRAW_PIXEL_TOKEN                 = $0705;
  225.   GL_COPY_PIXEL_TOKEN                 = $0706;
  226.   GL_LINE_RESET_TOKEN                 = $0707;
  227.  
  228. { FogMode }
  229. {      GL_LINEAR }
  230.   GL_EXP                              = $0800;
  231.   GL_EXP2                             = $0801;
  232.  
  233. { FogParameter }
  234. {      GL_FOG_COLOR }
  235. {      GL_FOG_DENSITY }
  236. {      GL_FOG_END }
  237. {      GL_FOG_INDEX }
  238. {      GL_FOG_MODE }
  239. {      GL_FOG_START }
  240.  
  241. { FrontFaceDirection }
  242.   GL_CW                               = $0900;
  243.   GL_CCW                              = $0901;
  244.  
  245. { GetMapTarget }
  246.   GL_COEFF                            = $0A00;
  247.   GL_ORDER                            = $0A01;
  248.   GL_DOMAIN                           = $0A02;
  249.  
  250. { GetPixelMap }
  251.   GL_PIXEL_MAP_I_TO_I                 = $0C70;
  252.   GL_PIXEL_MAP_S_TO_S                 = $0C71;
  253.   GL_PIXEL_MAP_I_TO_R                 = $0C72;
  254.   GL_PIXEL_MAP_I_TO_G                 = $0C73;
  255.   GL_PIXEL_MAP_I_TO_B                 = $0C74;
  256.   GL_PIXEL_MAP_I_TO_A                 = $0C75;
  257.   GL_PIXEL_MAP_R_TO_R                 = $0C76;
  258.   GL_PIXEL_MAP_G_TO_G                 = $0C77;
  259.   GL_PIXEL_MAP_B_TO_B                 = $0C78;
  260.   GL_PIXEL_MAP_A_TO_A                 = $0C79;
  261.  
  262. { GetTarget }
  263.   GL_CURRENT_COLOR                    = $0B00;
  264.   GL_CURRENT_INDEX                    = $0B01;
  265.   GL_CURRENT_NORMAL                   = $0B02;
  266.   GL_CURRENT_TEXTURE_COORDS           = $0B03;
  267.   GL_CURRENT_RASTER_COLOR             = $0B04;
  268.   GL_CURRENT_RASTER_INDEX             = $0B05;
  269.   GL_CURRENT_RASTER_TEXTURE_COORDS    = $0B06;
  270.   GL_CURRENT_RASTER_POSITION          = $0B07;
  271.   GL_CURRENT_RASTER_POSITION_VALID    = $0B08;
  272.   GL_CURRENT_RASTER_DISTANCE          = $0B09;
  273.   GL_POINT_SMOOTH                     = $0B10;
  274.   GL_POINT_SIZE                       = $0B11;
  275.   GL_POINT_SIZE_RANGE                 = $0B12;
  276.   GL_POINT_SIZE_GRANULARITY           = $0B13;
  277.   GL_LINE_SMOOTH                      = $0B20;
  278.   GL_LINE_WIDTH                       = $0B21;
  279.   GL_LINE_WIDTH_RANGE                 = $0B22;
  280.   GL_LINE_WIDTH_GRANULARITY           = $0B23;
  281.   GL_LINE_STIPPLE                     = $0B24;
  282.   GL_LINE_STIPPLE_PATTERN             = $0B25;
  283.   GL_LINE_STIPPLE_REPEAT              = $0B26;
  284.   GL_LIST_MODE                        = $0B30;
  285.   GL_MAX_LIST_NESTING                 = $0B31;
  286.   GL_LIST_BASE                        = $0B32;
  287.   GL_LIST_INDEX                       = $0B33;
  288.   GL_POLYGON_MODE                     = $0B40;
  289.   GL_POLYGON_SMOOTH                   = $0B41;
  290.   GL_POLYGON_STIPPLE                  = $0B42;
  291.   GL_EDGE_FLAG                        = $0B43;
  292.   GL_CULL_FACE                        = $0B44;
  293.   GL_CULL_FACE_MODE                   = $0B45;
  294.   GL_FRONT_FACE                       = $0B46;
  295.   GL_LIGHTING                         = $0B50;
  296.   GL_LIGHT_MODEL_LOCAL_VIEWER         = $0B51;
  297.   GL_LIGHT_MODEL_TWO_SIDE             = $0B52;
  298.   GL_LIGHT_MODEL_AMBIENT              = $0B53;
  299.   GL_SHADE_MODEL                      = $0B54;
  300.   GL_COLOR_MATERIAL_FACE              = $0B55;
  301.   GL_COLOR_MATERIAL_PARAMETER         = $0B56;
  302.   GL_COLOR_MATERIAL                   = $0B57;
  303.   GL_FOG                              = $0B60;
  304.   GL_FOG_INDEX                        = $0B61;
  305.   GL_FOG_DENSITY                      = $0B62;
  306.   GL_FOG_START                        = $0B63;
  307.   GL_FOG_END                          = $0B64;
  308.   GL_FOG_MODE                         = $0B65;
  309.   GL_FOG_COLOR                        = $0B66;
  310.   GL_DEPTH_RANGE                      = $0B70;
  311.   GL_DEPTH_TEST                       = $0B71;
  312.   GL_DEPTH_WRITEMASK                  = $0B72;
  313.   GL_DEPTH_CLEAR_VALUE                = $0B73;
  314.   GL_DEPTH_FUNC                       = $0B74;
  315.   GL_ACCUM_CLEAR_VALUE                = $0B80;
  316.   GL_STENCIL_TEST                     = $0B90;
  317.   GL_STENCIL_CLEAR_VALUE              = $0B91;
  318.   GL_STENCIL_FUNC                     = $0B92;
  319.   GL_STENCIL_VALUE_MASK               = $0B93;
  320.   GL_STENCIL_FAIL                     = $0B94;
  321.   GL_STENCIL_PASS_DEPTH_FAIL          = $0B95;
  322.   GL_STENCIL_PASS_DEPTH_PASS          = $0B96;
  323.   GL_STENCIL_REF                      = $0B97;
  324.   GL_STENCIL_WRITEMASK                = $0B98;
  325.   GL_MATRIX_MODE                      = $0BA0;
  326.   GL_NORMALIZE                        = $0BA1;
  327.   GL_VIEWPORT                         = $0BA2;
  328.   GL_MODELVIEW_STACK_DEPTH            = $0BA3;
  329.   GL_PROJECTION_STACK_DEPTH           = $0BA4;
  330.   GL_TEXTURE_STACK_DEPTH              = $0BA5;
  331.   GL_MODELVIEW_MATRIX                 = $0BA6;
  332.   GL_PROJECTION_MATRIX                = $0BA7;
  333.   GL_TEXTURE_MATRIX                   = $0BA8;
  334.   GL_ATTRIB_STACK_DEPTH               = $0BB0;
  335.   GL_ALPHA_TEST                       = $0BC0;
  336.   GL_ALPHA_TEST_FUNC                  = $0BC1;
  337.   GL_ALPHA_TEST_REF                   = $0BC2;
  338.   GL_DITHER                           = $0BD0;
  339.   GL_BLEND_DST                        = $0BE0;
  340.   GL_BLEND_SRC                        = $0BE1;
  341.   GL_BLEND                            = $0BE2;
  342.   GL_LOGIC_OP_MODE                    = $0BF0;
  343.   GL_LOGIC_OP                         = $0BF1;
  344.   GL_AUX_BUFFERS                      = $0C00;
  345.   GL_DRAW_BUFFER                      = $0C01;
  346.   GL_READ_BUFFER                      = $0C02;
  347.   GL_SCISSOR_BOX                      = $0C10;
  348.   GL_SCISSOR_TEST                     = $0C11;
  349.   GL_INDEX_CLEAR_VALUE                = $0C20;
  350.   GL_INDEX_WRITEMASK                  = $0C21;
  351.   GL_COLOR_CLEAR_VALUE                = $0C22;
  352.   GL_COLOR_WRITEMASK                  = $0C23;
  353.   GL_INDEX_MODE                       = $0C30;
  354.   GL_RGBA_MODE                        = $0C31;
  355.   GL_DOUBLEBUFFER                     = $0C32;
  356.   GL_STEREO                           = $0C33;
  357.   GL_RENDER_MODE                      = $0C40;
  358.   GL_PERSPECTIVE_CORRECTION_HINT      = $0C50;
  359.   GL_POINT_SMOOTH_HINT                = $0C51;
  360.   GL_LINE_SMOOTH_HINT                 = $0C52;
  361.   GL_POLYGON_SMOOTH_HINT              = $0C53;
  362.   GL_FOG_HINT                         = $0C54;
  363.   GL_TEXTURE_GEN_S                    = $0C60;
  364.   GL_TEXTURE_GEN_T                    = $0C61;
  365.   GL_TEXTURE_GEN_R                    = $0C62;
  366.   GL_TEXTURE_GEN_Q                    = $0C63;
  367.   GL_PIXEL_MAP_I_TO_I_SIZE            = $0CB0;
  368.   GL_PIXEL_MAP_S_TO_S_SIZE            = $0CB1;
  369.   GL_PIXEL_MAP_I_TO_R_SIZE            = $0CB2;
  370.   GL_PIXEL_MAP_I_TO_G_SIZE            = $0CB3;
  371.   GL_PIXEL_MAP_I_TO_B_SIZE            = $0CB4;
  372.   GL_PIXEL_MAP_I_TO_A_SIZE            = $0CB5;
  373.   GL_PIXEL_MAP_R_TO_R_SIZE            = $0CB6;
  374.   GL_PIXEL_MAP_G_TO_G_SIZE            = $0CB7;
  375.   GL_PIXEL_MAP_B_TO_B_SIZE            = $0CB8;
  376.   GL_PIXEL_MAP_A_TO_A_SIZE            = $0CB9;
  377.   GL_UNPACK_SWAP_BYTES                = $0CF0;
  378.   GL_UNPACK_LSB_FIRST                 = $0CF1;
  379.   GL_UNPACK_ROW_LENGTH                = $0CF2;
  380.   GL_UNPACK_SKIP_ROWS                 = $0CF3;
  381.   GL_UNPACK_SKIP_PIXELS               = $0CF4;
  382.   GL_UNPACK_ALIGNMENT                 = $0CF5;
  383.   GL_PACK_SWAP_BYTES                  = $0D00;
  384.   GL_PACK_LSB_FIRST                   = $0D01;
  385.   GL_PACK_ROW_LENGTH                  = $0D02;
  386.   GL_PACK_SKIP_ROWS                   = $0D03;
  387.   GL_PACK_SKIP_PIXELS                 = $0D04;
  388.   GL_PACK_ALIGNMENT                   = $0D05;
  389.   GL_MAP_COLOR                        = $0D10;
  390.   GL_MAP_STENCIL                      = $0D11;
  391.   GL_INDEX_SHIFT                      = $0D12;
  392.   GL_INDEX_OFFSET                     = $0D13;
  393.   GL_RED_SCALE                        = $0D14;
  394.   GL_RED_BIAS                         = $0D15;
  395.   GL_ZOOM_X                           = $0D16;
  396.   GL_ZOOM_Y                           = $0D17;
  397.   GL_GREEN_SCALE                      = $0D18;
  398.   GL_GREEN_BIAS                       = $0D19;
  399.   GL_BLUE_SCALE                       = $0D1A;
  400.   GL_BLUE_BIAS                        = $0D1B;
  401.   GL_ALPHA_SCALE                      = $0D1C;
  402.   GL_ALPHA_BIAS                       = $0D1D;
  403.   GL_DEPTH_SCALE                      = $0D1E;
  404.   GL_DEPTH_BIAS                       = $0D1F;
  405.   GL_MAX_EVAL_ORDER                   = $0D30;
  406.   GL_MAX_LIGHTS                       = $0D31;
  407.   GL_MAX_CLIP_PLANES                  = $0D32;
  408.   GL_MAX_TEXTURE_SIZE                 = $0D33;
  409.   GL_MAX_PIXEL_MAP_TABLE              = $0D34;
  410.   GL_MAX_ATTRIB_STACK_DEPTH           = $0D35;
  411.   GL_MAX_MODELVIEW_STACK_DEPTH        = $0D36;
  412.   GL_MAX_NAME_STACK_DEPTH             = $0D37;
  413.   GL_MAX_PROJECTION_STACK_DEPTH       = $0D38;
  414.   GL_MAX_TEXTURE_STACK_DEPTH          = $0D39;
  415.   GL_MAX_VIEWPORT_DIMS                = $0D3A;
  416.   GL_SUBPIXEL_BITS                    = $0D50;
  417.   GL_INDEX_BITS                       = $0D51;
  418.   GL_RED_BITS                         = $0D52;
  419.   GL_GREEN_BITS                       = $0D53;
  420.   GL_BLUE_BITS                        = $0D54;
  421.   GL_ALPHA_BITS                       = $0D55;
  422.   GL_DEPTH_BITS                       = $0D56;
  423.   GL_STENCIL_BITS                     = $0D57;
  424.   GL_ACCUM_RED_BITS                   = $0D58;
  425.   GL_ACCUM_GREEN_BITS                 = $0D59;
  426.   GL_ACCUM_BLUE_BITS                  = $0D5A;
  427.   GL_ACCUM_ALPHA_BITS                 = $0D5B;
  428.   GL_NAME_STACK_DEPTH                 = $0D70;
  429.   GL_AUTO_NORMAL                      = $0D80;
  430.   GL_MAP1_COLOR_4                     = $0D90;
  431.   GL_MAP1_INDEX                       = $0D91;
  432.   GL_MAP1_NORMAL                      = $0D92;
  433.   GL_MAP1_TEXTURE_COORD_1             = $0D93;
  434.   GL_MAP1_TEXTURE_COORD_2             = $0D94;
  435.   GL_MAP1_TEXTURE_COORD_3             = $0D95;
  436.   GL_MAP1_TEXTURE_COORD_4             = $0D96;
  437.   GL_MAP1_VERTEX_3                    = $0D97;
  438.   GL_MAP1_VERTEX_4                    = $0D98;
  439.   GL_MAP2_COLOR_4                     = $0DB0;
  440.   GL_MAP2_INDEX                       = $0DB1;
  441.   GL_MAP2_NORMAL                      = $0DB2;
  442.   GL_MAP2_TEXTURE_COORD_1             = $0DB3;
  443.   GL_MAP2_TEXTURE_COORD_2             = $0DB4;
  444.   GL_MAP2_TEXTURE_COORD_3             = $0DB5;
  445.   GL_MAP2_TEXTURE_COORD_4             = $0DB6;
  446.   GL_MAP2_VERTEX_3                    = $0DB7;
  447.   GL_MAP2_VERTEX_4                    = $0DB8;
  448.   GL_MAP1_GRID_DOMAIN                 = $0DD0;
  449.   GL_MAP1_GRID_SEGMENTS               = $0DD1;
  450.   GL_MAP2_GRID_DOMAIN                 = $0DD2;
  451.   GL_MAP2_GRID_SEGMENTS               = $0DD3;
  452.   GL_TEXTURE_1D                       = $0DE0;
  453.   GL_TEXTURE_2D                       = $0DE1;
  454.  
  455. { GetTextureParameter }
  456. {      GL_TEXTURE_MAG_FILTER }
  457. {      GL_TEXTURE_MIN_FILTER }
  458. {      GL_TEXTURE_WRAP_S }
  459. {      GL_TEXTURE_WRAP_T }
  460.   GL_TEXTURE_WIDTH                    = $1000;
  461.   GL_TEXTURE_HEIGHT                   = $1001;
  462.   GL_TEXTURE_COMPONENTS               = $1003;
  463.   GL_TEXTURE_BORDER_COLOR             = $1004;
  464.   GL_TEXTURE_BORDER                   = $1005;
  465.  
  466. { HintMode }
  467.   GL_DONT_CARE                        = $1100;
  468.   GL_FASTEST                          = $1101;
  469.   GL_NICEST                           = $1102;
  470.  
  471. { HintTarget }
  472. {      GL_PERSPECTIVE_CORRECTION_HINT }
  473. {      GL_POINT_SMOOTH_HINT }
  474. {      GL_LINE_SMOOTH_HINT }
  475. {      GL_POLYGON_SMOOTH_HINT }
  476. {      GL_FOG_HINT }
  477.  
  478. { LightModelParameter }
  479. {      GL_LIGHT_MODEL_AMBIENT }
  480. {      GL_LIGHT_MODEL_LOCAL_VIEWER }
  481. {      GL_LIGHT_MODEL_TWO_SIDE }
  482.  
  483. { LightParameter }
  484.   GL_AMBIENT                          = $1200;
  485.   GL_DIFFUSE                          = $1201;
  486.   GL_SPECULAR                         = $1202;
  487.   GL_POSITION                         = $1203;
  488.   GL_SPOT_DIRECTION                   = $1204;
  489.   GL_SPOT_EXPONENT                    = $1205;
  490.   GL_SPOT_CUTOFF                      = $1206;
  491.   GL_CONSTANT_ATTENUATION             = $1207;
  492.   GL_LINEAR_ATTENUATION               = $1208;
  493.   GL_QUADRATIC_ATTENUATION            = $1209;
  494.  
  495. { ListMode }
  496.   GL_COMPILE                          = $1300;
  497.   GL_COMPILE_AND_EXECUTE              = $1301;
  498.  
  499. { ListNameType }
  500.   GL_BYTE                             = $1400;
  501.   GL_UNSIGNED_BYTE                    = $1401;
  502.   GL_SHORT                            = $1402;
  503.   GL_UNSIGNED_SHORT                   = $1403;
  504.   GL_INT                              = $1404;
  505.   GL_UNSIGNED_INT                     = $1405;
  506.   GL_FLOAT                            = $1406;
  507.   GL_2_BYTES                          = $1407;
  508.   GL_3_BYTES                          = $1408;
  509.   GL_4_BYTES                          = $1409;
  510.  
  511. { LogicOp }
  512.   GL_CLEAR                            = $1500;
  513.   GL_AND                              = $1501;
  514.   GL_AND_REVERSE                      = $1502;
  515.   GL_COPY                             = $1503;
  516.   GL_AND_INVERTED                     = $1504;
  517.   GL_NOOP                             = $1505;
  518.   GL_XOR                              = $1506;
  519.   GL_OR                               = $1507;
  520.   GL_NOR                              = $1508;
  521.   GL_EQUIV                            = $1509;
  522.   GL_INVERT                           = $150A;
  523.   GL_OR_REVERSE                       = $150B;
  524.   GL_COPY_INVERTED                    = $150C;
  525.   GL_OR_INVERTED                      = $150D;
  526.   GL_NAND                             = $150E;
  527.   GL_SET                              = $150F;
  528.  
  529. { MapTarget }
  530. {      GL_MAP1_COLOR_4 }
  531. {      GL_MAP1_INDEX }
  532. {      GL_MAP1_NORMAL }
  533. {      GL_MAP1_TEXTURE_COORD_1 }
  534. {      GL_MAP1_TEXTURE_COORD_2 }
  535. {      GL_MAP1_TEXTURE_COORD_3 }
  536. {      GL_MAP1_TEXTURE_COORD_4 }
  537. {      GL_MAP1_VERTEX_3 }
  538. {      GL_MAP1_VERTEX_4 }
  539. {      GL_MAP2_COLOR_4 }
  540. {      GL_MAP2_INDEX }
  541. {      GL_MAP2_NORMAL }
  542. {      GL_MAP2_TEXTURE_COORD_1 }
  543. {      GL_MAP2_TEXTURE_COORD_2 }
  544. {      GL_MAP2_TEXTURE_COORD_3 }
  545. {      GL_MAP2_TEXTURE_COORD_4 }
  546. {      GL_MAP2_VERTEX_3 }
  547. {      GL_MAP2_VERTEX_4 }
  548.  
  549. { MaterialFace }
  550. {      GL_FRONT }
  551. {      GL_BACK }
  552. {      GL_FRONT_AND_BACK }
  553.  
  554. { MaterialParameter }
  555.   GL_EMISSION                         = $1600;
  556.   GL_SHININESS                        = $1601;
  557.   GL_AMBIENT_AND_DIFFUSE              = $1602;
  558.   GL_COLOR_INDEXES                    = $1603;
  559. {      GL_AMBIENT }
  560. {      GL_DIFFUSE }
  561. {      GL_SPECULAR }
  562.  
  563. { MatrixMode }
  564.   GL_MODELVIEW                        = $1700;
  565.   GL_PROJECTION                       = $1701;
  566.   GL_TEXTURE                          = $1702;
  567.  
  568. { MeshMode1 }
  569. {      GL_POINT }
  570. {      GL_LINE }
  571.  
  572. { MeshMode2 }
  573. {      GL_POINT }
  574. {      GL_LINE }
  575. {      GL_FILL }
  576.  
  577. { PixelCopyType }
  578.   GL_COLOR                            = $1800;
  579.   GL_DEPTH                            = $1801;
  580.   GL_STENCIL                          = $1802;
  581.  
  582. { PixelFormat }
  583.   GL_COLOR_INDEX                      = $1900;
  584.   GL_STENCIL_INDEX                    = $1901;
  585.   GL_DEPTH_COMPONENT                  = $1902;
  586.   GL_RED                              = $1903;
  587.   GL_GREEN                            = $1904;
  588.   GL_BLUE                             = $1905;
  589.   GL_ALPHA                            = $1906;
  590.   GL_RGB                              = $1907;
  591.   GL_RGBA                             = $1908;
  592.   GL_LUMINANCE                        = $1909;
  593.   GL_LUMINANCE_ALPHA                  = $190A;
  594.  
  595. { PixelMap }
  596. {      GL_PIXEL_MAP_I_TO_I }
  597. {      GL_PIXEL_MAP_S_TO_S }
  598. {      GL_PIXEL_MAP_I_TO_R }
  599. {      GL_PIXEL_MAP_I_TO_G }
  600. {      GL_PIXEL_MAP_I_TO_B }
  601. {      GL_PIXEL_MAP_I_TO_A }
  602. {      GL_PIXEL_MAP_R_TO_R }
  603. {      GL_PIXEL_MAP_G_TO_G }
  604. {      GL_PIXEL_MAP_B_TO_B }
  605. {      GL_PIXEL_MAP_A_TO_A }
  606.  
  607. { PixelStore }
  608. {      GL_UNPACK_SWAP_BYTES }
  609. {      GL_UNPACK_LSB_FIRST }
  610. {      GL_UNPACK_ROW_LENGTH }
  611. {      GL_UNPACK_SKIP_ROWS }
  612. {      GL_UNPACK_SKIP_PIXELS }
  613. {      GL_UNPACK_ALIGNMENT }
  614. {      GL_PACK_SWAP_BYTES }
  615. {      GL_PACK_LSB_FIRST }
  616. {      GL_PACK_ROW_LENGTH }
  617. {      GL_PACK_SKIP_ROWS }
  618. {      GL_PACK_SKIP_PIXELS }
  619. {      GL_PACK_ALIGNMENT }
  620.  
  621. { PixelTransfer }
  622. {      GL_MAP_COLOR }
  623. {      GL_MAP_STENCIL }
  624. {      GL_INDEX_SHIFT }
  625. {      GL_INDEX_OFFSET }
  626. {      GL_RED_SCALE }
  627. {      GL_RED_BIAS }
  628. {      GL_GREEN_SCALE }
  629. {      GL_GREEN_BIAS }
  630. {      GL_BLUE_SCALE }
  631. {      GL_BLUE_BIAS }
  632. {      GL_ALPHA_SCALE }
  633. {      GL_ALPHA_BIAS }
  634. {      GL_DEPTH_SCALE }
  635. {      GL_DEPTH_BIAS }
  636.  
  637. { PixelType }
  638.   GL_BITMAP                           = $1A00;
  639. {      GL_BYTE }
  640. {      GL_UNSIGNED_BYTE }
  641. {      GL_SHORT }
  642. {      GL_UNSIGNED_SHORT }
  643. {      GL_INT }
  644. {      GL_UNSIGNED_INT }
  645. {      GL_FLOAT }
  646.  
  647. { PolygonMode }
  648.   GL_POINT                            = $1B00;
  649.   GL_LINE                             = $1B01;
  650.   GL_FILL                             = $1B02;
  651.  
  652. { ReadBufferMode }
  653. {      GL_FRONT_LEFT }
  654. {      GL_FRONT_RIGHT }
  655. {      GL_BACK_LEFT }
  656. {      GL_BACK_RIGHT }
  657. {      GL_FRONT }
  658. {      GL_BACK }
  659. {      GL_LEFT }
  660. {      GL_RIGHT }
  661. {      GL_AUX0 }
  662. {      GL_AUX1 }
  663. {      GL_AUX2 }
  664. {      GL_AUX3 }
  665.  
  666. { RenderingMode }
  667.   GL_RENDER                           = $1C00;
  668.   GL_FEEDBACK                         = $1C01;
  669.   GL_SELECT                           = $1C02;
  670.  
  671. { ShadingModel }
  672.   GL_FLAT                             = $1D00;
  673.   GL_SMOOTH                           = $1D01;
  674.  
  675. { StencilFunction }
  676. {      GL_NEVER }
  677. {      GL_LESS }
  678. {      GL_EQUAL }
  679. {      GL_LEQUAL }
  680. {      GL_GREATER }
  681. {      GL_NOTEQUAL }
  682. {      GL_GEQUAL }
  683. {      GL_ALWAYS }
  684.  
  685. { StencilOp }
  686. {      GL_ZERO }
  687.   GL_KEEP                             = $1E00;
  688.   GL_REPLACE                          = $1E01;
  689.   GL_INCR                             = $1E02;
  690.   GL_DECR                             = $1E03;
  691. {      GL_INVERT }
  692.  
  693. { StringName }
  694.   GL_VENDOR                           = $1F00;
  695.   GL_RENDERER                         = $1F01;
  696.   GL_VERSION                          = $1F02;
  697.   GL_EXTENSIONS                       = $1F03;
  698.  
  699. { TextureCoordName }
  700.   GL_S                                = $2000;
  701.   GL_T                                = $2001;
  702.   GL_R                                = $2002;
  703.   GL_Q                                = $2003;
  704.  
  705. { TextureEnvMode }
  706.   GL_MODULATE                         = $2100;
  707.   GL_DECAL                            = $2101;
  708. {      GL_BLEND }
  709.  
  710. { TextureEnvParameter }
  711.   GL_TEXTURE_ENV_MODE                 = $2200;
  712.   GL_TEXTURE_ENV_COLOR                = $2201;
  713.  
  714. { TextureEnvTarget }
  715.   GL_TEXTURE_ENV                      = $2300;
  716.  
  717. { TextureGenMode }
  718.   GL_EYE_LINEAR                       = $2400;
  719.   GL_OBJECT_LINEAR                    = $2401;
  720.   GL_SPHERE_MAP                       = $2402;
  721.  
  722. { TextureGenParameter }
  723.   GL_TEXTURE_GEN_MODE                 = $2500;
  724.   GL_OBJECT_PLANE                     = $2501;
  725.   GL_EYE_PLANE                        = $2502;
  726.  
  727. { TextureMagFilter }
  728.   GL_NEAREST                          = $2600;
  729.   GL_LINEAR                           = $2601;
  730.  
  731. { TextureMinFilter }
  732. {      GL_NEAREST }
  733. {      GL_LINEAR }
  734.   GL_NEAREST_MIPMAP_NEAREST           = $2700;
  735.   GL_LINEAR_MIPMAP_NEAREST            = $2701;
  736.   GL_NEAREST_MIPMAP_LINEAR            = $2702;
  737.   GL_LINEAR_MIPMAP_LINEAR             = $2703;
  738.  
  739. { TextureParameterName }
  740.   GL_TEXTURE_MAG_FILTER               = $2800;
  741.   GL_TEXTURE_MIN_FILTER               = $2801;
  742.   GL_TEXTURE_WRAP_S                   = $2802;
  743.   GL_TEXTURE_WRAP_T                   = $2803;
  744. {      GL_TEXTURE_BORDER_COLOR }
  745.  
  746. { TextureTarget }
  747. {      GL_TEXTURE_1D }
  748. {      GL_TEXTURE_2D }
  749.  
  750. { TextureWrapMode }
  751.   GL_CLAMP                            = $2900;
  752.   GL_REPEAT                           = $2901;
  753.  
  754. { ClipPlaneName }
  755.   GL_CLIP_PLANE0                      = $3000;
  756.   GL_CLIP_PLANE1                      = $3001;
  757.   GL_CLIP_PLANE2                      = $3002;
  758.   GL_CLIP_PLANE3                      = $3003;
  759.   GL_CLIP_PLANE4                      = $3004;
  760.   GL_CLIP_PLANE5                      = $3005;
  761.  
  762. { LightName }
  763.   GL_LIGHT0                           = $4000;
  764.   GL_LIGHT1                           = $4001;
  765.   GL_LIGHT2                           = $4002;
  766.   GL_LIGHT3                           = $4003;
  767.   GL_LIGHT4                           = $4004;
  768.   GL_LIGHT5                           = $4005;
  769.   GL_LIGHT6                           = $4006;
  770.   GL_LIGHT7                           = $4007;
  771.  
  772. // Extensions
  773.   GL_EXT_vertex_array                 = 1;
  774.   GL_WIN_swap_hint                    = 1;
  775.  
  776. // EXT_vertex_array
  777.   GL_VERTEX_ARRAY_EXT               = $8074;
  778.   GL_NORMAL_ARRAY_EXT               = $8075;
  779.   GL_COLOR_ARRAY_EXT                = $8076;
  780.   GL_INDEX_ARRAY_EXT                = $8077;
  781.   GL_TEXTURE_COORD_ARRAY_EXT        = $8078;
  782.   GL_EDGE_FLAG_ARRAY_EXT            = $8079;
  783.   GL_VERTEX_ARRAY_SIZE_EXT          = $807A;
  784.   GL_VERTEX_ARRAY_TYPE_EXT          = $807B;
  785.   GL_VERTEX_ARRAY_STRIDE_EXT        = $807C;
  786.   GL_VERTEX_ARRAY_COUNT_EXT         = $807D;
  787.   GL_NORMAL_ARRAY_TYPE_EXT          = $807E;
  788.   GL_NORMAL_ARRAY_STRIDE_EXT        = $807F;
  789.   GL_NORMAL_ARRAY_COUNT_EXT         = $8080;
  790.   GL_COLOR_ARRAY_SIZE_EXT           = $8081;
  791.   GL_COLOR_ARRAY_TYPE_EXT           = $8082;
  792.   GL_COLOR_ARRAY_STRIDE_EXT         = $8083;
  793.   GL_COLOR_ARRAY_COUNT_EXT          = $8084;
  794.   GL_INDEX_ARRAY_TYPE_EXT           = $8085;
  795.   GL_INDEX_ARRAY_STRIDE_EXT         = $8086;
  796.   GL_INDEX_ARRAY_COUNT_EXT          = $8087;
  797.   GL_TEXTURE_COORD_ARRAY_SIZE_EXT   = $8088;
  798.   GL_TEXTURE_COORD_ARRAY_TYPE_EXT   = $8089;
  799.   GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
  800.   GL_TEXTURE_COORD_ARRAY_COUNT_EXT  = $808B;
  801.   GL_EDGE_FLAG_ARRAY_STRIDE_EXT     = $808C;
  802.   GL_EDGE_FLAG_ARRAY_COUNT_EXT      = $808D;
  803.   GL_VERTEX_ARRAY_POINTER_EXT       = $808E;
  804.   GL_NORMAL_ARRAY_POINTER_EXT       = $808F;
  805.   GL_COLOR_ARRAY_POINTER_EXT        = $8090;
  806.   GL_INDEX_ARRAY_POINTER_EXT        = $8091;
  807.   GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
  808.   GL_EDGE_FLAG_ARRAY_POINTER_EXT    = $8093;
  809.  
  810.  
  811. type
  812.   PPointFloat = ^TPointFloat;
  813.   {$EXTERNALSYM _POINTFLOAT}
  814.   _POINTFLOAT = record
  815.     X,Y: Single;
  816.   end;
  817.   TPointFloat = _POINTFLOAT;
  818.   {$EXTERNALSYM POINTFLOAT}
  819.   POINTFLOAT = _POINTFLOAT;
  820.  
  821.   PGlyphMetricsFloat = ^TGlyphMetricsFloat;
  822.   {$EXTERNALSYM _GLYPHMETRICSFLOAT}
  823.   _GLYPHMETRICSFLOAT = record
  824.     gmfBlackBoxX: Single;
  825.     gmfBlackBoxY: Single;
  826.     gmfptGlyphOrigin: TPointFloat;
  827.     gmfCellIncX: Single;
  828.     gmfCellIncY: Single;
  829.   end;
  830.   TGlyphMetricsFloat = _GLYPHMETRICSFLOAT;
  831.   {$EXTERNALSYM GLYPHMETRICSFLOAT}
  832.   GLYPHMETRICSFLOAT = _GLYPHMETRICSFLOAT;
  833.  
  834. const
  835.   {$EXTERNALSYM WGL_FONT_LINES}
  836.   WGL_FONT_LINES      = 0;
  837.   {$EXTERNALSYM WGL_FONT_POLYGONS}
  838.   WGL_FONT_POLYGONS   = 1;
  839.  
  840. {***********************************************************}
  841.  
  842. procedure glAccum (op: GLenum; value: GLfloat); stdcall;
  843. procedure glAlphaFunc (func: GLenum; ref: GLclampf); stdcall;
  844. procedure glBegin (mode: GLenum); stdcall;
  845. procedure glBitmap (width, height: GLsizei; xorig, yorig: GLfloat;
  846.                     xmove, ymove: GLfloat; bitmap: Pointer); stdcall;
  847. procedure glBlendFunc (sfactor, dfactor: GLenum); stdcall;
  848. procedure glCallList (list: GLuint); stdcall;
  849. procedure glCallLists (n: GLsizei; cltype: GLenum; lists: Pointer); stdcall;
  850. procedure glClear (mask: GLbitfield); stdcall;
  851. procedure glClearAccum (red, green, blue, alpha: GLfloat); stdcall;
  852. procedure glClearColor (red, green, blue, alpha: GLclampf); stdcall;
  853. procedure glClearDepth (depth: GLclampd); stdcall;
  854. procedure glClearIndex (c: GLfloat); stdcall;
  855. procedure glClearStencil (s: GLint); stdcall;
  856. procedure glClipPlane (plane: GLenum; equation: PGLDouble); stdcall;
  857. procedure glColor3b (red, green, blue: GLbyte); stdcall;
  858. procedure glColor3bv (v: PGLByte); stdcall;
  859. procedure glColor3d (red, green, blue: GLdouble); stdcall;
  860. procedure glColor3dv (v: PGLdouble); stdcall;
  861. procedure glColor3f (red, green, blue: GLfloat); stdcall;
  862. procedure glColor3fv (v: PGLfloat); stdcall;
  863. procedure glColor3i (red, green, blue: GLint); stdcall;
  864. procedure glColor3iv (v: PGLint); stdcall;
  865. procedure glColor3s (red, green, blue: GLshort); stdcall;
  866. procedure glColor3sv (v: PGLshort); stdcall;
  867. procedure glColor3ub (red, green, blue: GLubyte); stdcall;
  868. procedure glColor3ubv (v: PGLubyte); stdcall;
  869. procedure glColor3ui (red, green, blue: GLuint); stdcall;
  870. procedure glColor3uiv (v: PGLuint); stdcall;
  871. procedure glColor3us (red, green, blue: GLushort); stdcall;
  872. procedure glColor3usv (v: PGLushort); stdcall;
  873. procedure glColor4b (red, green, blue, alpha: GLbyte); stdcall;
  874. procedure glColor4bv (v: PGLbyte); stdcall;
  875. procedure glColor4d (red, green, blue, alpha: GLdouble); stdcall;
  876. procedure glColor4dv (v: PGLdouble); stdcall;
  877. procedure glColor4f (red, green, blue, alpha: GLfloat); stdcall;
  878. procedure glColor4fv (v: PGLfloat); stdcall;
  879. procedure glColor4i (red, green, blue, alpha: GLint); stdcall;
  880. procedure glColor4iv (v: PGLint); stdcall;
  881. procedure glColor4s (red, green, blue, alpha: GLshort); stdcall;
  882. procedure glColor4sv (v: PGLshort); stdcall;
  883. procedure glColor4ub (red, green, blue, alpha: GLubyte); stdcall;
  884. procedure glColor4ubv (v: PGLubyte); stdcall;
  885. procedure glColor4ui (red, green, blue, alpha: GLuint); stdcall;
  886. procedure glColor4uiv (v: PGLuint); stdcall;
  887. procedure glColor4us (red, green, blue, alpha: GLushort); stdcall;
  888. procedure glColor4usv (v: PGLushort); stdcall;
  889. procedure glColorMask (red, green, blue, alpha: GLboolean); stdcall;
  890. procedure glColorMaterial (face, mode: GLenum); stdcall;
  891. procedure glCopyPixels (x,y: GLint; width, height: GLsizei; pixeltype: GLenum); stdcall;
  892. procedure glCullFace (mode: GLenum); stdcall;
  893. procedure glDeleteLists (list: GLuint; range: GLsizei); stdcall;
  894. procedure glDepthFunc (func: GLenum); stdcall;
  895. procedure glDepthMask (flag: GLboolean); stdcall;
  896. procedure glDepthRange (zNear, zFar: GLclampd); stdcall;
  897. procedure glDisable (cap: GLenum); stdcall;
  898. procedure glDrawBuffer (mode: GLenum); stdcall;
  899. procedure glDrawPixels (width, height: GLsizei; format, pixeltype: GLenum;
  900.              pixels: Pointer); stdcall;
  901. procedure glEdgeFlag (flag: GLboolean); stdcall;
  902. procedure glEdgeFlagv (flag: PGLboolean); stdcall;
  903. procedure glEnable (cap: GLenum); stdcall;
  904. procedure glEnd; stdcall;
  905. procedure glEndList; stdcall;
  906. procedure glEvalCoord1d (u: GLdouble); stdcall;
  907. procedure glEvalCoord1dv (u: PGLdouble); stdcall;
  908. procedure glEvalCoord1f (u: GLfloat); stdcall;
  909. procedure glEvalCoord1fv (u: PGLfloat); stdcall;
  910. procedure glEvalCoord2d (u,v: GLdouble); stdcall;
  911. procedure glEvalCoord2dv (u: PGLdouble); stdcall;
  912. procedure glEvalCoord2f (u,v: GLfloat); stdcall;
  913. procedure glEvalCoord2fv (u: PGLfloat); stdcall;
  914. procedure glEvalMesh1 (mode: GLenum; i1, i2: GLint); stdcall;
  915. procedure glEvalMesh2 (mode: GLenum; i1, i2, j1, j2: GLint); stdcall;
  916. procedure glEvalPoint1 (i: GLint); stdcall;
  917. procedure glEvalPoint2 (i,j: GLint); stdcall;
  918. procedure glFeedbackBuffer (size: GLsizei; buftype: GLenum; buffer: PGLFloat); stdcall;
  919. procedure glFinish; stdcall;
  920. procedure glFlush; stdcall;
  921. procedure glFogf (pname: GLenum; param: GLfloat); stdcall;
  922. procedure glFogfv (pname: GLenum; params: PGLfloat); stdcall;
  923. procedure glFogi (pname: GLenum; param: GLint); stdcall;
  924. procedure glFogiv (pname: GLenum; params: PGLint); stdcall;
  925. procedure glFrontFace (mode: GLenum); stdcall;
  926. procedure glFrustum (left, right, bottom, top, zNear, zFar: GLdouble); stdcall;
  927. function  glGenLists (range: GLsizei): GLuint; stdcall;
  928. procedure glGetBooleanv (pname: GLenum; params: PGLboolean); stdcall;
  929. procedure glGetClipPlane (plane: GLenum; equation: PGLdouble); stdcall;
  930. procedure glGetDoublev (pname: GLenum; params: PGLdouble); stdcall;
  931. function  glGetError: GLenum; stdcall;
  932. procedure glGetFloatv (pname: GLenum; params: PGLfloat); stdcall;
  933. procedure glGetIntegerv (pname: GLenum; params: PGLint); stdcall;
  934. procedure glGetLightfv (light: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  935. procedure glGetLightiv (light: GLenum; pname: GLenum; params: PGLint); stdcall;
  936. procedure glGetMapdv (target: GLenum; query: GLenum; v: PGLdouble); stdcall;
  937. procedure glGetMapfv (target: GLenum; query: GLenum; v: PGLfloat); stdcall;
  938. procedure glGetMapiv (target: GLenum; query: GLenum; v: PGLint); stdcall;
  939. procedure glGetMaterialfv (face: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  940. procedure glGetMaterialiv (face: GLenum; pname: GLenum; params: PGLint); stdcall;
  941. procedure glGetPixelMapfv (map: GLenum; values: PGLfloat); stdcall;
  942. procedure glGetPixelMapuiv (map: GLenum; values: PGLuint); stdcall;
  943. procedure glGetPixelMapusv (map: GLenum; values: PGLushort); stdcall;
  944. procedure glGetPolygonStipple (var mask: GLubyte); stdcall;
  945. function  glGetString (name: GLenum): PChar; stdcall;
  946. procedure glGetTexEnvfv (target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  947. procedure glGetTexEnviv (target: GLenum; pname: GLenum; params: PGLint); stdcall;
  948. procedure glGetTexGendv (coord: GLenum; pname: GLenum; params: PGLdouble); stdcall;
  949. procedure glGetTexGenfv (coord: GLenum; pname: GLenum; params: PGLfloat); stdcall;
  950. procedure glGetTexGeniv (coord: GLenum; pname: GLenum; params: PGLint); stdcall;
  951. procedure glGetTexImage (target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: pointer); stdcall;
  952. procedure glGetTexLevelParameterfv (target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); stdcall;
  953. procedure glGetTexLevelParameteriv (target: GLenum; level: GLint; pname: GLenum; params: PGLint); stdcall;
  954. procedure glGetTexParameterfv (target, pname: GLenum; params: PGLfloat); stdcall;
  955. procedure glGetTexParameteriv (target, pname: GLenum; params: PGLint); stdcall;
  956. procedure glHint (target, mode: GLenum); stdcall;
  957. procedure glIndexMask (mask: GLuint); stdcall;
  958. procedure glIndexd (c: GLdouble); stdcall;
  959. procedure glIndexdv (c: PGLdouble); stdcall;
  960. procedure glIndexf (c: GLfloat); stdcall;
  961. procedure glIndexfv (c: PGLfloat); stdcall;
  962. procedure glIndexi (c: GLint); stdcall;
  963. procedure glIndexiv (c: PGLint); stdcall;
  964. procedure glIndexs (c: GLshort); stdcall;
  965. procedure glIndexsv (c: PGLshort); stdcall;
  966. procedure glInitNames; stdcall;
  967. function  glIsEnabled (cap: GLenum): GLBoolean; stdcall;
  968. function  glIsList (list: GLuint): GLBoolean;   stdcall;
  969. procedure glLightModelf (pname: GLenum; param: GLfloat); stdcall;
  970. procedure glLightModelfv (pname: GLenum; params: PGLfloat); stdcall;
  971. procedure glLightModeli (pname: GLenum; param: GLint); stdcall;
  972. procedure glLightModeliv (pname: GLenum; params: PGLint); stdcall;
  973. procedure glLightf (light, pname: GLenum; param: GLfloat); stdcall;
  974. procedure glLightfv (light, pname: GLenum; params: PGLfloat); stdcall;
  975. procedure glLighti (light, pname: GLenum; param: GLint); stdcall;
  976. procedure glLightiv (light, pname: GLenum; params: PGLint); stdcall;
  977. procedure glLineStipple (factor: GLint; pattern: GLushort); stdcall;
  978. procedure glLineWidth (width: GLfloat); stdcall;
  979. procedure glListBase (base: GLuint); stdcall;
  980. procedure glLoadIdentity; stdcall;
  981. procedure glLoadMatrixd (m: PGLdouble); stdcall;
  982. procedure glLoadMatrixf (m: PGLfloat); stdcall;
  983. procedure glLoadName (name: GLuint); stdcall;
  984. procedure glLogicOp (opcode: GLenum); stdcall;
  985. procedure glMap1d (target: GLenum; u1,u2: GLdouble; stride, order: GLint;
  986.   Points: PGLdouble); stdcall;
  987. procedure glMap1f (target: GLenum; u1,u2: GLfloat; stride, order: GLint;
  988.   Points: PGLfloat); stdcall;
  989. procedure glMap2d (target: GLenum;
  990.   u1,u2: GLdouble; ustride, uorder: GLint;
  991.   v1,v2: GLdouble; vstride, vorder: GLint; Points: PGLdouble); stdcall;
  992. procedure glMap2f (target: GLenum;
  993.   u1,u2: GLfloat; ustride, uorder: GLint;
  994.   v1,v2: GLfloat; vstride, vorder: GLint; Points: PGLfloat); stdcall;
  995. procedure glMapGrid1d (un: GLint; u1, u2: GLdouble); stdcall;
  996. procedure glMapGrid1f (un: GLint; u1, u2: GLfloat); stdcall;
  997. procedure glMapGrid2d (un: GLint; u1, u2: GLdouble;
  998.                        vn: GLint; v1, v2: GLdouble); stdcall;
  999. procedure glMapGrid2f (un: GLint; u1, u2: GLfloat;
  1000.                        vn: GLint; v1, v2: GLfloat); stdcall;
  1001. procedure glMaterialf (face, pname: GLenum; param: GLfloat); stdcall;
  1002. procedure glMaterialfv (face, pname: GLenum; params: PGLfloat); stdcall;
  1003. procedure glMateriali (face, pname: GLenum; param: GLint); stdcall;
  1004. procedure glMaterialiv (face, pname: GLenum; params: PGLint); stdcall;
  1005. procedure glMatrixMode (mode: GLenum); stdcall;
  1006. procedure glMultMatrixd (m: PGLdouble); stdcall;
  1007. procedure glMultMatrixf (m: PGLfloat); stdcall;
  1008. procedure glNewList (ListIndex: GLuint; mode: GLenum); stdcall;
  1009. procedure glNormal3b (nx, ny, nz: GLbyte); stdcall;
  1010. procedure glNormal3bv (v: PGLbyte); stdcall;
  1011. procedure glNormal3d (nx, ny, nz: GLdouble); stdcall;
  1012. procedure glNormal3dv (v: PGLdouble); stdcall;
  1013. procedure glNormal3f (nx, ny, nz: GLFloat); stdcall;
  1014. procedure glNormal3fv (v: PGLfloat); stdcall;
  1015. procedure glNormal3i (nx, ny, nz: GLint); stdcall;
  1016. procedure glNormal3iv (v: PGLint); stdcall;
  1017. procedure glNormal3s (nx, ny, nz: GLshort); stdcall;
  1018. procedure glNormal3sv (v: PGLshort); stdcall;
  1019. procedure glOrtho (left, right, bottom, top, zNear, zFar: GLdouble); stdcall;
  1020. procedure glPassThrough (token: GLfloat); stdcall;
  1021. procedure glPixelMapfv (map: GLenum; mapsize: GLint; values: PGLfloat); stdcall;
  1022. procedure glPixelMapuiv (map: GLenum; mapsize: GLint; values: PGLuint); stdcall;
  1023. procedure glPixelMapusv (map: GLenum; mapsize: GLint; values: PGLushort); stdcall;
  1024. procedure glPixelStoref (pname: GLenum; param: GLfloat); stdcall;
  1025. procedure glPixelStorei (pname: GLenum; param: GLint); stdcall;
  1026. procedure glPixelTransferf (pname: GLenum; param: GLfloat); stdcall;
  1027. procedure glPixelTransferi (pname: GLenum; param: GLint); stdcall;
  1028. procedure glPixelZoom (xfactor, yfactor: GLfloat); stdcall;
  1029. procedure glPointSize (size: GLfloat); stdcall;
  1030. procedure glPolygonMode (face, mode: GLenum); stdcall;
  1031. procedure glPolygonStipple (mask: PGLubyte); stdcall;
  1032. procedure glPopAttrib; stdcall;
  1033. procedure glPopMatrix; stdcall;
  1034. procedure glPopName; stdcall;
  1035. procedure glPushAttrib(mask: GLbitfield); stdcall;
  1036. procedure glPushMatrix; stdcall;
  1037. procedure glPushName(name: GLuint); stdcall;
  1038. procedure glRasterPos2d (x,y: GLdouble); stdcall;
  1039. procedure glRasterPos2dv (v: PGLdouble); stdcall;
  1040. procedure glRasterPos2f (x,y: GLfloat); stdcall;
  1041. procedure glRasterPos2fv (v: PGLfloat); stdcall;
  1042. procedure glRasterPos2i (x,y: GLint); stdcall;
  1043. procedure glRasterPos2iv (v: PGLint); stdcall;
  1044. procedure glRasterPos2s (x,y: GLshort); stdcall;
  1045. procedure glRasterPos2sv (v: PGLshort); stdcall;
  1046. procedure glRasterPos3d (x,y,z: GLdouble); stdcall;
  1047. procedure glRasterPos3dv (v: PGLdouble); stdcall;
  1048. procedure glRasterPos3f (x,y,z: GLfloat); stdcall;
  1049. procedure glRasterPos3fv (v: PGLfloat); stdcall;
  1050. procedure glRasterPos3i (x,y,z: GLint); stdcall;
  1051. procedure glRasterPos3iv (v: PGLint); stdcall;
  1052. procedure glRasterPos3s (x,y,z: GLshort); stdcall;
  1053. procedure glRasterPos3sv (v: PGLshort); stdcall;
  1054. procedure glRasterPos4d (x,y,z,w: GLdouble); stdcall;
  1055. procedure glRasterPos4dv (v: PGLdouble); stdcall;
  1056. procedure glRasterPos4f (x,y,z: GLfloat); stdcall;
  1057. procedure glRasterPos4fv (v: PGLfloat); stdcall;
  1058. procedure glRasterPos4i (x,y,z: GLint); stdcall;
  1059. procedure glRasterPos4iv (v: PGLint); stdcall;
  1060. procedure glRasterPos4s (x,y,z: GLshort); stdcall;
  1061. procedure glRasterPos4sv (v: PGLshort); stdcall;
  1062. procedure glReadBuffer (mode: GLenum); stdcall;
  1063. procedure glReadPixels (x,y: GLint; width, height: GLsizei;
  1064.   format, _type: GLenum; pixels: Pointer); stdcall;
  1065. procedure glRectd (x1, y1, x2, y2: GLdouble); stdcall;
  1066. procedure glRectdv (v1, v2: PGLdouble); stdcall;
  1067. procedure glRectf (x1, y1, x2, y2: GLfloat); stdcall;
  1068. procedure glRectfv (v1, v2: PGLfloat); stdcall;
  1069. procedure glRecti (x1, y1, x2, y2: GLint); stdcall;
  1070. procedure glRectiv (v1, v2: PGLint); stdcall;
  1071. procedure glRects (x1, y1, x2, y2: GLshort); stdcall;
  1072. procedure glRectsv (v1, v2: PGLshort); stdcall;
  1073. function  glRenderMode (mode: GLenum): GLint; stdcall;
  1074. procedure glRotated (angle, x,y,z: GLdouble); stdcall;
  1075. procedure glRotatef (angle, x,y,z: GLfloat); stdcall;
  1076. procedure glScaled (x,y,z: GLdouble); stdcall;
  1077. procedure glScalef (x,y,z: GLfloat); stdcall;
  1078. procedure glScissor (x,y: GLint; width, height: GLsizei); stdcall;
  1079. procedure glSelectBuffer (size: GLsizei; buffer: PGLuint); stdcall;
  1080. procedure glShadeModel (mode: GLenum); stdcall;
  1081. procedure glStencilFunc (func: GLenum; ref: GLint; mask: GLuint); stdcall;
  1082. procedure glStencilMask (mask: GLuint); stdcall;
  1083. procedure glStencilOp (fail, zfail, zpass: GLenum); stdcall;
  1084. procedure glTexCoord1d (s: GLdouble); stdcall;
  1085. procedure glTexCoord1dv (v: PGLdouble); stdcall;
  1086. procedure glTexCoord1f (s: GLfloat); stdcall;
  1087. procedure glTexCoord1fv (v: PGLfloat); stdcall;
  1088. procedure glTexCoord1i (s: GLint); stdcall;
  1089. procedure glTexCoord1iv (v: PGLint); stdcall;
  1090. procedure glTexCoord1s (s: GLshort); stdcall;
  1091. procedure glTexCoord1sv (v: PGLshort); stdcall;
  1092. procedure glTexCoord2d (s,t: GLdouble); stdcall;
  1093. procedure glTexCoord2dv (v: PGLdouble); stdcall;
  1094. procedure glTexCoord2f (s,t: GLfloat); stdcall;
  1095. procedure glTexCoord2fv (v: PGLfloat); stdcall;
  1096. procedure glTexCoord2i (s,t: GLint); stdcall;
  1097. procedure glTexCoord2iv (v: PGLint); stdcall;
  1098. procedure glTexCoord2s (s,t: GLshort); stdcall;
  1099. procedure glTexCoord2sv (v: PGLshort); stdcall;
  1100. procedure glTexCoord3d (s,t,r: GLdouble); stdcall;
  1101. procedure glTexCoord3dv (v: PGLdouble); stdcall;
  1102. procedure glTexCoord3f (s,t,r: GLfloat); stdcall;
  1103. procedure glTexCoord3fv (v: PGLfloat); stdcall;
  1104. procedure glTexCoord3i (s,t,r: GLint); stdcall;
  1105. procedure glTexCoord3iv (v: PGLint); stdcall;
  1106. procedure glTexCoord3s (s,t,r: GLshort); stdcall;
  1107. procedure glTexCoord3sv (v: PGLshort); stdcall;
  1108. procedure glTexCoord4d (s,t,r,q: GLdouble); stdcall;
  1109. procedure glTexCoord4dv (v: PGLdouble); stdcall;
  1110. procedure glTexCoord4f (s,t,r: GLfloat); stdcall;
  1111. procedure glTexCoord4fv (v: PGLfloat); stdcall;
  1112. procedure glTexCoord4i (s,t,r: GLint); stdcall;
  1113. procedure glTexCoord4iv (v: PGLint); stdcall;
  1114. procedure glTexCoord4s (s,t,r: GLshort); stdcall;
  1115. procedure glTexCoord4sv (v: PGLshort); stdcall;
  1116. procedure glTexEnvf (target, pname: GLenum; param: GLfloat); stdcall;
  1117. procedure glTexEnvfv (target, pname: GLenum; params: PGLfloat); stdcall;
  1118. procedure glTexEnvi (target, pname: GLenum; param: GLint); stdcall;
  1119. procedure glTexEnviv (target, pname: GLenum; params: PGLint); stdcall;
  1120. procedure glTexGend (coord, pname: GLenum; param: GLdouble); stdcall;
  1121. procedure glTexGendv (coord, pname: GLenum; params: PGLdouble); stdcall;
  1122. procedure glTexGenf (coord, pname: GLenum; param: GLfloat); stdcall;
  1123. procedure glTexGenfv (coord, pname: GLenum; params: PGLfloat); stdcall;
  1124. procedure glTexGeni (coord, pname: GLenum; param: GLint); stdcall;
  1125. procedure glTexGeniv (coord, pname: GLenum; params: PGLint); stdcall;
  1126. procedure glTexImage1D (target: GLenum; level, components: GLint;
  1127.   width: GLsizei; border: GLint; format, _type: GLenum; pixels: Pointer); stdcall;
  1128. procedure glTexImage2D (target: GLenum; level, components: GLint;
  1129.   width, height: GLsizei; border: GLint; format, _type: GLenum; pixels: Pointer); stdcall;
  1130. procedure glTexParameterf (target, pname: GLenum; param: GLfloat); stdcall;
  1131. procedure glTexParameterfv (target, pname: GLenum; params: PGLfloat); stdcall;
  1132. procedure glTexParameteri (target, pname: GLenum; param: GLint); stdcall;
  1133. procedure glTexParameteriv (target, pname: GLenum; params: PGLint); stdcall;
  1134. procedure glTranslated (x,y,z: GLdouble); stdcall;
  1135. procedure glTranslatef (x,y,z: GLfloat); stdcall;
  1136. procedure glVertex2d (x,y: GLdouble); stdcall;
  1137. procedure glVertex2dv (v: PGLdouble); stdcall;
  1138. procedure glVertex2f (x,y: GLfloat); stdcall;
  1139. procedure glVertex2fv (v: PGLfloat); stdcall;
  1140. procedure glVertex2i (x,y: GLint); stdcall;
  1141. procedure glVertex2iv (v: PGLint); stdcall;
  1142. procedure glVertex2s (x,y: GLshort); stdcall;
  1143. procedure glVertex2sv (v: PGLshort); stdcall;
  1144. procedure glVertex3d (x,y,z: GLdouble); stdcall;
  1145. procedure glVertex3dv (v: PGLdouble); stdcall;
  1146. procedure glVertex3f (x,y,z: GLfloat); stdcall;
  1147. procedure glVertex3fv (v: PGLfloat); stdcall;
  1148. procedure glVertex3i (x,y,z: GLint); stdcall;
  1149. procedure glVertex3iv (v: PGLint); stdcall;
  1150. procedure glVertex3s (x,y,z: GLshort); stdcall;
  1151. procedure glVertex3sv (v: PGLshort); stdcall;
  1152. procedure glVertex4d (x,y,z,w: GLdouble); stdcall;
  1153. procedure glVertex4dv (v: PGLdouble); stdcall;
  1154. procedure glVertex4f (x,y,z,w: GLfloat); stdcall;
  1155. procedure glVertex4fv (v: PGLfloat); stdcall;
  1156. procedure glVertex4i (x,y,z,w: GLint); stdcall;
  1157. procedure glVertex4iv (v: PGLint); stdcall;
  1158. procedure glVertex4s (x,y,z,w: GLshort); stdcall;
  1159. procedure glVertex4sv (v: PGLshort); stdcall;
  1160. procedure glViewport (x,y: GLint; width, height: GLsizei); stdcall;
  1161.  
  1162. type
  1163.  
  1164. // EXT_vertex_array
  1165.   TGLARRAYELEMENTEXTPROC = procedure (i: GLint) stdcall;
  1166.   TGLDRAWARRAYSEXTPROC = procedure (mode: GLenum; first: GLint; count: GLsizei) stdcall;
  1167.   TGLVERTEXPOINTEREXTPROC = procedure (size: GLint; type_: GLenum;
  1168.     stride, count: GLsizei; P: Pointer) stdcall;
  1169.   TGLNORMALPOINTEREXTPROC = procedure (type_: GLenum; stride, count: GLsizei;
  1170.     P: Pointer) stdcall;
  1171.   TGLCOLORPOINTEREXTPROC = procedure (size: GLint; type_: GLenum;
  1172.     stride, count: GLsizei; P: Pointer) stdcall;
  1173.   TGLINDEXPOINTEREXTPROC = procedure (type_: GLenum; stride, count: GLsizei;
  1174.     P: Pointer) stdcall;
  1175.   TGLTEXCOORDPOINTEREXTPROC = procedure (size: GLint; type_: GLenum;
  1176.     stride, count: GLsizei; P: Pointer) stdcall;
  1177.   TGLEDGEFLAGPOINTEREXTPROC = procedure (stride, count: GLsizei;
  1178.     P: PGLboolean) stdcall;
  1179.   TGLGETPOINTERVEXTPROC = procedure (pname: GLenum; var Params) stdcall;
  1180.  
  1181. // WIN_swap_hint
  1182.  
  1183.   TGLADDSWAPHINTRECTWINPROC = procedure (x, y: GLint; width, height: GLsizei) stdcall;
  1184.  
  1185. { OpenGL Utility routines (glu.h) =======================================}
  1186.  
  1187. function gluErrorString (errCode: GLenum): PChar; stdcall;
  1188. function gluErrorUnicodeStringEXT (errCode: GLenum): PWChar; stdcall;
  1189. function gluGetString (name: GLenum): PChar; stdcall;
  1190.  
  1191. procedure gluLookAt(eyex, eyey, eyez,
  1192.                     centerx, centery, centerz,
  1193.                     upx, upy, upz: GLdouble); stdcall;
  1194. procedure gluOrtho2D(left, right, bottom, top: GLdouble); stdcall;
  1195. procedure gluPerspective(fovy, aspect, zNear, zFar: GLdouble); stdcall;
  1196. procedure gluPickMatrix (x, y, width, height: GLdouble; viewport: PGLint); stdcall;
  1197. function  gluProject (objx, objy, obyz: GLdouble;
  1198.                       modelMatrix: PGLdouble;
  1199.                       projMatrix: PGLdouble;
  1200.                       viewport: PGLint;
  1201.                       var winx, winy, winz: GLDouble): Integer; stdcall;
  1202. function  gluUnProject(winx, winy, winz: GLdouble;
  1203.                       modelMatrix: PGLdouble;
  1204.                       projMatrix: PGLdouble;
  1205.                       viewport: PGLint;
  1206.                       var objx, objy, objz: GLdouble): Integer; stdcall;
  1207. function  gluScaleImage(format: GLenum;
  1208.    widthin, heightin: GLint; typein: GLenum; datain: Pointer;
  1209.    widthout, heightout: GLint; typeout: GLenum; dataout: Pointer): Integer; stdcall;
  1210.  
  1211. function  gluBuild1DMipmaps (target: GLenum; components, width: GLint;
  1212.                              format, atype: GLenum; data: Pointer): Integer; stdcall;
  1213. function  gluBuild2DMipmaps (target: GLenum; components, width: GLint;
  1214.                              format, atype: GLenum; data: Pointer): Integer; stdcall;
  1215.  
  1216. type
  1217.   _GLUquadricObj = record end;
  1218.   GLUquadricObj = ^_GLUquadricObj;
  1219.  
  1220.   TGLUquadricErrorProc = procedure (error: GLenum) stdcall;
  1221.  
  1222. function  gluNewQuadric: GLUquadricObj; stdcall;
  1223. procedure gluDeleteQuadric (state: GLUquadricObj); stdcall;
  1224. procedure gluQuadricNormals (quadObject: GLUquadricObj; normals: GLenum);  stdcall;
  1225. procedure gluQuadricTexture (quadObject: GLUquadricObj; textureCoords: GLboolean );stdcall;
  1226. procedure gluQuadricOrientation (quadObject: GLUquadricObj; orientation: GLenum); stdcall;
  1227. procedure gluQuadricDrawStyle (quadObject: GLUquadricObj; drawStyle: GLenum); stdcall;
  1228. procedure gluCylinder (quadObject: GLUquadricObj;
  1229.   baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); stdcall;
  1230. procedure gluDisk (quadObject: GLUquadricObj;
  1231.   innerRadius, outerRadius: GLdouble; slices, loops: GLint); stdcall;
  1232. procedure gluPartialDisk (quadObject: GLUquadricObj;
  1233.   innerRadius, outerRadius: GLdouble; slices, loops: GLint;
  1234.   startAngle, sweepAngle: GLdouble); stdcall;
  1235. procedure gluSphere (quadObject: GLUquadricObj; radius: GLdouble; slices, loops: GLint); stdcall;
  1236. procedure gluQuadricCallback (quadObject: GLUquadricObj; which: GLenum;
  1237.   callback: Pointer); stdcall;
  1238.  
  1239. type
  1240.   _GLUtesselator = record end;
  1241.   GLUtesselator = ^_GLUtesselator;
  1242.  
  1243.   // tesselator callback procedure types
  1244.   TGLUtessBeginProc = procedure (a: GLenum) stdcall;
  1245.   TGLUtessEdgeFlagProc = procedure (flag: GLboolean) stdcall;
  1246.   TGLUtessVertexProc = procedure (p: Pointer) stdcall;
  1247.   TGLUtessEndProc = procedure stdcall;
  1248.   TGLUtessErrorProc = TGLUquadricErrorProc;
  1249.   TGLUtessCombineProc = procedure (a: PGLdouble; b: Pointer;
  1250.                                    c: PGLfloat; var d: Pointer) stdcall;
  1251.  
  1252. function gluNewTess: GLUtesselator; stdcall;
  1253. procedure gluDeleteTess( tess: GLUtesselator ); stdcall;
  1254. procedure gluTessBeginPolygon( tess: GLUtesselator ); stdcall;
  1255. procedure gluTessBeginContour( tess: GLUtesselator ); stdcall;
  1256. procedure gluTessVertex( tess: GLUtesselator; coords: PGLdouble; data: Pointer ); stdcall;
  1257. procedure gluTessEndContour( tess: GLUtesselator ); stdcall;
  1258. procedure gluTessEndPolygon( tess: GLUtesselator ); stdcall;
  1259. procedure gluTessProperty( tess: GLUtesselator; which: GLenum; value: GLdouble); stdcall;
  1260. procedure gluTessNormal( tess: GLUtesselator; x,y,z: GLdouble); stdcall;
  1261. procedure gluTessCallback( tess: GLUtesselator; which: GLenum; callback: pointer); stdcall;
  1262.  
  1263. type
  1264.   TGLUnurbsObj = record end;
  1265.   GLUnurbsObj = ^TGLUnurbsObj;
  1266.  
  1267.   TGLUnurbsErrorProc = TGLUquadricErrorProc;
  1268.  
  1269. function gluNewNurbsRenderer: GLUnurbsObj; stdcall;
  1270. procedure gluDeleteNurbsRenderer (nobj: GLUnurbsObj); stdcall;
  1271. procedure gluBeginSurface (nobj: GLUnurbsObj); stdcall;
  1272. procedure gluBeginCurve (nobj: GLUnurbsObj); stdcall;
  1273. procedure gluEndCurve (nobj: GLUnurbsObj); stdcall;
  1274. procedure gluEndSurface (nobj: GLUnurbsObj); stdcall;
  1275. procedure gluBeginTrim (nobj: GLUnurbsObj); stdcall;
  1276. procedure gluEndTrim (nobj: GLUnurbsObj); stdcall;
  1277. procedure gluPwlCurve (nobj: GLUnurbsObj; count: GLint; points: PGLfloat;
  1278.   stride: GLint; _type: GLenum); stdcall;
  1279. procedure gluNurbsCurve (nobj: GLUnurbsObj; nknots: GLint; knot: PGLfloat;
  1280.   stride: GLint; ctlpts: PGLfloat; order: GLint; _type: GLenum); stdcall;
  1281. procedure gluNurbsSurface (nobj: GLUnurbsObj;
  1282.   sknot_count: GLint; sknot: PGLfloat;
  1283.   tknot_count: GLint; tknot: PGLfloat;
  1284.   s_stride, t_stride: GLint;
  1285.   ctlpts: PGLfloat; sorder, torder: GLint; _type: GLenum); stdcall;
  1286. procedure gluLoadSamplingMatrices (nobj: GLUnurbsObj;
  1287.   modelMatrix: PGLdouble; projMatrix: PGLdouble; viewport: PGLint); stdcall;
  1288. procedure gluNurbsProperty (nobj: GLUnurbsObj; prop: GLenum; value: GLfloat); stdcall;
  1289. procedure gluGetNurbsProperty (nobj: GLUnurbsObj; prop: GLenum; var value: GLfloat); stdcall;
  1290. procedure gluNurbsCallback (nobj: GLUnurbsObj; which: GLenum; callback: pointer); stdcall;
  1291.  
  1292.  
  1293. {****           Generic constants               ****}
  1294. const
  1295.   GLU_VERSION_1_1  =               1;
  1296.  
  1297. { Errors: (return value 0 = no error) }
  1298.   GLU_INVALID_ENUM       = 100900;
  1299.   GLU_INVALID_VALUE      = 100901;
  1300.   GLU_OUT_OF_MEMORY      = 100902;
  1301.   GLU_INCOMPATIBLE_GL_VERSION  =   100903;
  1302.  
  1303. { gets }
  1304.   GLU_VERSION            = 100800;
  1305.   GLU_EXTENSIONS         = 100801;
  1306.  
  1307. { For laughs: }
  1308.   GLU_TRUE               = GL_TRUE;
  1309.   GLU_FALSE              = GL_FALSE;
  1310.  
  1311.  
  1312. {***           Quadric constants               ***}
  1313.  
  1314. { Types of normals: }
  1315.   GLU_SMOOTH             = 100000;
  1316.   GLU_FLAT               = 100001;
  1317.   GLU_NONE               = 100002;
  1318.  
  1319. { DrawStyle types: }
  1320.   GLU_POINT              = 100010;
  1321.   GLU_LINE               = 100011;
  1322.   GLU_FILL               = 100012;
  1323.   GLU_SILHOUETTE         = 100013;
  1324.  
  1325. { Orientation types: }
  1326.   GLU_OUTSIDE            = 100020;
  1327.   GLU_INSIDE             = 100021;
  1328.  
  1329. { Callback types: }
  1330. {      GLU_ERROR               100103 }
  1331.  
  1332.  
  1333. {***           Tesselation constants           ***}
  1334.  
  1335.   GLU_TESS_MAX_COORD     =         1.0e150;
  1336.  
  1337. { Property types: }
  1338.   GLU_TESS_WINDING_RULE  =         100110;
  1339.   GLU_TESS_BOUNDARY_ONLY =         100111;
  1340.   GLU_TESS_TOLERANCE     =         100112;
  1341.  
  1342. { Possible winding rules: }
  1343.   GLU_TESS_WINDING_ODD          =  100130;
  1344.   GLU_TESS_WINDING_NONZERO      =  100131;
  1345.   GLU_TESS_WINDING_POSITIVE     =  100132;
  1346.   GLU_TESS_WINDING_NEGATIVE     =  100133;
  1347.   GLU_TESS_WINDING_ABS_GEQ_TWO  =  100134;
  1348.  
  1349. { Callback types: }
  1350.   GLU_TESS_BEGIN     = 100100 ;     { void (*)(GLenum    type)         }
  1351.   GLU_TESS_VERTEX    = 100101 ;     { void (*)(void      *data)        }
  1352.   GLU_TESS_END       = 100102 ;     { void (*)(void)                   }
  1353.   GLU_TESS_ERROR     = 100103 ;     { void (*)(GLenum    errno)        }
  1354.   GLU_TESS_EDGE_FLAG = 100104 ;     { void (*)(GLboolean boundaryEdge) }
  1355.   GLU_TESS_COMBINE   = 100105 ;     { void (*)(GLdouble  coords[3],;
  1356.                                                     void      *data[4],;
  1357.                                                     GLfloat   weight[4],;
  1358.                                                     void      **dataOut)    }
  1359.  
  1360. { Errors: }
  1361.   GLU_TESS_ERROR1    = 100151;
  1362.   GLU_TESS_ERROR2    = 100152;
  1363.   GLU_TESS_ERROR3    = 100153;
  1364.   GLU_TESS_ERROR4    = 100154;
  1365.   GLU_TESS_ERROR5    = 100155;
  1366.   GLU_TESS_ERROR6    = 100156;
  1367.   GLU_TESS_ERROR7    = 100157;
  1368.   GLU_TESS_ERROR8    = 100158;
  1369.  
  1370.   GLU_TESS_MISSING_BEGIN_POLYGON  = GLU_TESS_ERROR1;
  1371.   GLU_TESS_MISSING_BEGIN_CONTOUR  = GLU_TESS_ERROR2;
  1372.   GLU_TESS_MISSING_END_POLYGON    = GLU_TESS_ERROR3;
  1373.   GLU_TESS_MISSING_END_CONTOUR    = GLU_TESS_ERROR4;
  1374.   GLU_TESS_COORD_TOO_LARGE        = GLU_TESS_ERROR5;
  1375.   GLU_TESS_NEED_COMBINE_CALLBACK  = GLU_TESS_ERROR6;
  1376.  
  1377. {***           NURBS constants                 ***}
  1378.  
  1379. { Properties: }
  1380.   GLU_AUTO_LOAD_MATRIX          =  100200;
  1381.   GLU_CULLING                   =  100201;
  1382.   GLU_SAMPLING_TOLERANCE        =  100203;
  1383.   GLU_DISPLAY_MODE              =  100204;
  1384.   GLU_PARAMETRIC_TOLERANCE      =  100202;
  1385.   GLU_SAMPLING_METHOD           =  100205;
  1386.   GLU_U_STEP                    =  100206;
  1387.   GLU_V_STEP                    =  100207;
  1388.  
  1389. { Sampling methods: }
  1390.   GLU_PATH_LENGTH               =  100215;
  1391.   GLU_PARAMETRIC_ERROR          =  100216;
  1392.   GLU_DOMAIN_DISTANCE           =  100217;
  1393.  
  1394. { Trimming curve types }
  1395.   GLU_MAP1_TRIM_2       =  100210;
  1396.   GLU_MAP1_TRIM_3       =  100211;
  1397.  
  1398. { Display modes: }
  1399. {      GLU_FILL                100012 }
  1400.   GLU_OUTLINE_POLYGON    = 100240;
  1401.   GLU_OUTLINE_PATCH      = 100241;
  1402.  
  1403. { Callbacks: }
  1404. {      GLU_ERROR               100103 }
  1405.  
  1406. { Errors: }
  1407.   GLU_NURBS_ERROR1       = 100251;
  1408.   GLU_NURBS_ERROR2       = 100252;
  1409.   GLU_NURBS_ERROR3       = 100253;
  1410.   GLU_NURBS_ERROR4       = 100254;
  1411.   GLU_NURBS_ERROR5       = 100255;
  1412.   GLU_NURBS_ERROR6       = 100256;
  1413.   GLU_NURBS_ERROR7       = 100257;
  1414.   GLU_NURBS_ERROR8       = 100258;
  1415.   GLU_NURBS_ERROR9       = 100259;
  1416.   GLU_NURBS_ERROR10      = 100260;
  1417.   GLU_NURBS_ERROR11      = 100261;
  1418.   GLU_NURBS_ERROR12      = 100262;
  1419.   GLU_NURBS_ERROR13      = 100263;
  1420.   GLU_NURBS_ERROR14      = 100264;
  1421.   GLU_NURBS_ERROR15      = 100265;
  1422.   GLU_NURBS_ERROR16      = 100266;
  1423.   GLU_NURBS_ERROR17      = 100267;
  1424.   GLU_NURBS_ERROR18      = 100268;
  1425.   GLU_NURBS_ERROR19      = 100269;
  1426.   GLU_NURBS_ERROR20      = 100270;
  1427.   GLU_NURBS_ERROR21      = 100271;
  1428.   GLU_NURBS_ERROR22      = 100272;
  1429.   GLU_NURBS_ERROR23      = 100273;
  1430.   GLU_NURBS_ERROR24      = 100274;
  1431.   GLU_NURBS_ERROR25      = 100275;
  1432.   GLU_NURBS_ERROR26      = 100276;
  1433.   GLU_NURBS_ERROR27      = 100277;
  1434.   GLU_NURBS_ERROR28      = 100278;
  1435.   GLU_NURBS_ERROR29      = 100279;
  1436.   GLU_NURBS_ERROR30      = 100280;
  1437.   GLU_NURBS_ERROR31      = 100281;
  1438.   GLU_NURBS_ERROR32      = 100282;
  1439.   GLU_NURBS_ERROR33      = 100283;
  1440.   GLU_NURBS_ERROR34      = 100284;
  1441.   GLU_NURBS_ERROR35      = 100285;
  1442.   GLU_NURBS_ERROR36      = 100286;
  1443.   GLU_NURBS_ERROR37      = 100287;
  1444.  
  1445. {
  1446. /****           Backwards compatibility for old tesselator           ****/
  1447.  
  1448. typedef GLUtesselator GLUtriangulatorObj;
  1449.  
  1450. procedure   gluBeginPolygon( tess: GLUtesselator );
  1451.  
  1452. procedure   gluNextContour(  tess: GLUtesselator,
  1453.                                  GLenum        type );
  1454.  
  1455. procedure   gluEndPolygon(   tess: GLUtesselator );
  1456.  
  1457. /* Contours types -- obsolete! */
  1458. #define GLU_CW          100120
  1459. #define GLU_CCW         100121
  1460. #define GLU_INTERIOR    100122
  1461. #define GLU_EXTERIOR    100123
  1462. #define GLU_UNKNOWN     100124
  1463.  
  1464. /* Names without "TESS_" prefix */
  1465. #define GLU_BEGIN       GLU_TESS_BEGIN
  1466. #define GLU_VERTEX      GLU_TESS_VERTEX
  1467. #define GLU_END         GLU_TESS_END
  1468. #define GLU_ERROR       GLU_TESS_ERROR
  1469. #define GLU_EDGE_FLAG   GLU_TESS_EDGE_FLAG
  1470. }
  1471.  
  1472. { GDI support routines for OpenGL ==========================================}
  1473.  
  1474. function wglGetProcAddress(ProcName: PChar): Pointer;  stdcall;
  1475.  
  1476. const
  1477.   glu32 = 'glu32.dll';
  1478.  
  1479. implementation
  1480.  
  1481. procedure glAccum; external opengl32;
  1482. procedure glAlphaFunc; external opengl32;
  1483. procedure glBegin; external opengl32;
  1484. procedure glBitmap; external opengl32;
  1485. procedure glBlendFunc; external opengl32;
  1486. procedure glCallList; external opengl32;
  1487. procedure glCallLists; external opengl32;
  1488. procedure glClear; external opengl32;
  1489. procedure glClearAccum; external opengl32;
  1490. procedure glClearColor; external opengl32;
  1491. procedure glClearDepth; external opengl32;
  1492. procedure glClearIndex; external opengl32;
  1493. procedure glClearStencil; external opengl32;
  1494. procedure glClipPlane; external opengl32;
  1495. procedure glColor3b; external opengl32;
  1496. procedure glColor3bv; external opengl32;
  1497. procedure glColor3d; external opengl32;
  1498. procedure glColor3dv; external opengl32;
  1499. procedure glColor3f; external opengl32;
  1500. procedure glColor3fv; external opengl32;
  1501. procedure glColor3i; external opengl32;
  1502. procedure glColor3iv; external opengl32;
  1503. procedure glColor3s; external opengl32;
  1504. procedure glColor3sv; external opengl32;
  1505. procedure glColor3ub; external opengl32;
  1506. procedure glColor3ubv; external opengl32;
  1507. procedure glColor3ui; external opengl32;
  1508. procedure glColor3uiv; external opengl32;
  1509. procedure glColor3us; external opengl32;
  1510. procedure glColor3usv; external opengl32;
  1511. procedure glColor4b; external opengl32;
  1512. procedure glColor4bv; external opengl32;
  1513. procedure glColor4d; external opengl32;
  1514. procedure glColor4dv; external opengl32;
  1515. procedure glColor4f; external opengl32;
  1516. procedure glColor4fv; external opengl32;
  1517. procedure glColor4i; external opengl32;
  1518. procedure glColor4iv; external opengl32;
  1519. procedure glColor4s; external opengl32;
  1520. procedure glColor4sv; external opengl32;
  1521. procedure glColor4ub; external opengl32;
  1522. procedure glColor4ubv; external opengl32;
  1523. procedure glColor4ui; external opengl32;
  1524. procedure glColor4uiv; external opengl32;
  1525. procedure glColor4us; external opengl32;
  1526. procedure glColor4usv; external opengl32;
  1527. procedure glColorMask; external opengl32;
  1528. procedure glColorMaterial; external opengl32;
  1529. procedure glCopyPixels; external opengl32;
  1530. procedure glCullFace; external opengl32;
  1531. procedure glDeleteLists; external opengl32;
  1532. procedure glDepthFunc; external opengl32;
  1533. procedure glDepthMask; external opengl32;
  1534. procedure glDepthRange; external opengl32;
  1535. procedure glDisable; external opengl32;
  1536. procedure glDrawBuffer; external opengl32;
  1537. procedure glDrawPixels; external opengl32;
  1538. procedure glEdgeFlag; external opengl32;
  1539. procedure glEdgeFlagv; external opengl32;
  1540. procedure glEnable; external opengl32;
  1541. procedure glEnd; external opengl32;
  1542. procedure glEndList; external opengl32;
  1543. procedure glEvalCoord1d; external opengl32;
  1544. procedure glEvalCoord1dv; external opengl32;
  1545. procedure glEvalCoord1f; external opengl32;
  1546. procedure glEvalCoord1fv; external opengl32;
  1547. procedure glEvalCoord2d; external opengl32;
  1548. procedure glEvalCoord2dv; external opengl32;
  1549. procedure glEvalCoord2f; external opengl32;
  1550. procedure glEvalCoord2fv; external opengl32;
  1551. procedure glEvalMesh1; external opengl32;
  1552. procedure glEvalMesh2; external opengl32;
  1553. procedure glEvalPoint1; external opengl32;
  1554. procedure glEvalPoint2; external opengl32;
  1555. procedure glFeedbackBuffer; external opengl32;
  1556. procedure glFinish; external opengl32;
  1557. procedure glFlush; external opengl32;
  1558. procedure glFogf; external opengl32;
  1559. procedure glFogfv; external opengl32;
  1560. procedure glFogi; external opengl32;
  1561. procedure glFogiv; external opengl32;
  1562. procedure glFrontFace; external opengl32;
  1563. procedure glFrustum; external opengl32;
  1564. function  glGenLists; external opengl32;
  1565. procedure glGetBooleanv; external opengl32;
  1566. procedure glGetClipPlane; external opengl32;
  1567. procedure glGetDoublev; external opengl32;
  1568. function  glGetError: GLenum; external opengl32;
  1569. procedure glGetFloatv; external opengl32;
  1570. procedure glGetIntegerv; external opengl32;
  1571. procedure glGetLightfv; external opengl32;
  1572. procedure glGetLightiv; external opengl32;
  1573. procedure glGetMapdv; external opengl32;
  1574. procedure glGetMapfv; external opengl32;
  1575. procedure glGetMapiv; external opengl32;
  1576. procedure glGetMaterialfv; external opengl32;
  1577. procedure glGetMaterialiv; external opengl32;
  1578. procedure glGetPixelMapfv; external opengl32;
  1579. procedure glGetPixelMapuiv; external opengl32;
  1580. procedure glGetPixelMapusv; external opengl32;
  1581. procedure glGetPolygonStipple; external opengl32;
  1582. function  glGetString; external opengl32;
  1583. procedure glGetTexEnvfv; external opengl32;
  1584. procedure glGetTexEnviv; external opengl32;
  1585. procedure glGetTexGendv; external opengl32;
  1586. procedure glGetTexGenfv; external opengl32;
  1587. procedure glGetTexGeniv; external opengl32;
  1588. procedure glGetTexImage; external opengl32;
  1589. procedure glGetTexLevelParameterfv; external opengl32;
  1590. procedure glGetTexLevelParameteriv; external opengl32;
  1591. procedure glGetTexParameterfv; external opengl32;
  1592. procedure glGetTexParameteriv; external opengl32;
  1593. procedure glHint; external opengl32;
  1594. procedure glIndexMask; external opengl32;
  1595. procedure glIndexd; external opengl32;
  1596. procedure glIndexdv; external opengl32;
  1597. procedure glIndexf; external opengl32;
  1598. procedure glIndexfv; external opengl32;
  1599. procedure glIndexi; external opengl32;
  1600. procedure glIndexiv; external opengl32;
  1601. procedure glIndexs; external opengl32;
  1602. procedure glIndexsv; external opengl32;
  1603. procedure glInitNames; external opengl32;
  1604. function  glIsEnabled; external opengl32;
  1605. function  glIsList; external opengl32;
  1606. procedure glLightModelf; external opengl32;
  1607. procedure glLightModelfv; external opengl32;
  1608. procedure glLightModeli; external opengl32;
  1609. procedure glLightModeliv; external opengl32;
  1610. procedure glLightf; external opengl32;
  1611. procedure glLightfv; external opengl32;
  1612. procedure glLighti; external opengl32;
  1613. procedure glLightiv; external opengl32;
  1614. procedure glLineStipple; external opengl32;
  1615. procedure glLineWidth; external opengl32;
  1616. procedure glListBase; external opengl32;
  1617. procedure glLoadIdentity; external opengl32;
  1618. procedure glLoadMatrixd; external opengl32;
  1619. procedure glLoadMatrixf; external opengl32;
  1620. procedure glLoadName; external opengl32;
  1621. procedure glLogicOp; external opengl32;
  1622. procedure glMap1d; external opengl32;
  1623. procedure glMap1f; external opengl32;
  1624. procedure glMap2d; external opengl32;
  1625. procedure glMap2f; external opengl32;
  1626. procedure glMapGrid1d; external opengl32;
  1627. procedure glMapGrid1f; external opengl32;
  1628. procedure glMapGrid2d; external opengl32;
  1629. procedure glMapGrid2f; external opengl32;
  1630. procedure glMaterialf; external opengl32;
  1631. procedure glMaterialfv; external opengl32;
  1632. procedure glMateriali; external opengl32;
  1633. procedure glMaterialiv; external opengl32;
  1634. procedure glMatrixMode; external opengl32;
  1635. procedure glMultMatrixd; external opengl32;
  1636. procedure glMultMatrixf; external opengl32;
  1637. procedure glNewList; external opengl32;
  1638. procedure glNormal3b; external opengl32;
  1639. procedure glNormal3bv; external opengl32;
  1640. procedure glNormal3d; external opengl32;
  1641. procedure glNormal3dv; external opengl32;
  1642. procedure glNormal3f; external opengl32;
  1643. procedure glNormal3fv; external opengl32;
  1644. procedure glNormal3i; external opengl32;
  1645. procedure glNormal3iv; external opengl32;
  1646. procedure glNormal3s; external opengl32;
  1647. procedure glNormal3sv; external opengl32;
  1648. procedure glOrtho; external opengl32;
  1649. procedure glPassThrough; external opengl32;
  1650. procedure glPixelMapfv; external opengl32;
  1651. procedure glPixelMapuiv; external opengl32;
  1652. procedure glPixelMapusv; external opengl32;
  1653. procedure glPixelStoref; external opengl32;
  1654. procedure glPixelStorei; external opengl32;
  1655. procedure glPixelTransferf; external opengl32;
  1656. procedure glPixelTransferi; external opengl32;
  1657. procedure glPixelZoom; external opengl32;
  1658. procedure glPointSize; external opengl32;
  1659. procedure glPolygonMode; external opengl32;
  1660. procedure glPolygonStipple; external opengl32;
  1661. procedure glPopAttrib; external opengl32;
  1662. procedure glPopMatrix; external opengl32;
  1663. procedure glPopName; external opengl32;
  1664. procedure glPushAttrib; external opengl32;
  1665. procedure glPushMatrix; external opengl32;
  1666. procedure glPushName; external opengl32;
  1667. procedure glRasterPos2d; external opengl32;
  1668. procedure glRasterPos2dv; external opengl32;
  1669. procedure glRasterPos2f; external opengl32;
  1670. procedure glRasterPos2fv; external opengl32;
  1671. procedure glRasterPos2i; external opengl32;
  1672. procedure glRasterPos2iv; external opengl32;
  1673. procedure glRasterPos2s; external opengl32;
  1674. procedure glRasterPos2sv; external opengl32;
  1675. procedure glRasterPos3d; external opengl32;
  1676. procedure glRasterPos3dv; external opengl32;
  1677. procedure glRasterPos3f; external opengl32;
  1678. procedure glRasterPos3fv; external opengl32;
  1679. procedure glRasterPos3i; external opengl32;
  1680. procedure glRasterPos3iv; external opengl32;
  1681. procedure glRasterPos3s; external opengl32;
  1682. procedure glRasterPos3sv; external opengl32;
  1683. procedure glRasterPos4d; external opengl32;
  1684. procedure glRasterPos4dv; external opengl32;
  1685. procedure glRasterPos4f; external opengl32;
  1686. procedure glRasterPos4fv; external opengl32;
  1687. procedure glRasterPos4i; external opengl32;
  1688. procedure glRasterPos4iv; external opengl32;
  1689. procedure glRasterPos4s; external opengl32;
  1690. procedure glRasterPos4sv; external opengl32;
  1691. procedure glReadBuffer; external opengl32;
  1692. procedure glReadPixels; external opengl32;
  1693. procedure glRectd; external opengl32;
  1694. procedure glRectdv; external opengl32;
  1695. procedure glRectf; external opengl32;
  1696. procedure glRectfv; external opengl32;
  1697. procedure glRecti; external opengl32;
  1698. procedure glRectiv; external opengl32;
  1699. procedure glRects; external opengl32;
  1700. procedure glRectsv; external opengl32;
  1701. function  glRenderMode; external opengl32;
  1702. procedure glRotated; external opengl32;
  1703. procedure glRotatef; external opengl32;
  1704. procedure glScaled; external opengl32;
  1705. procedure glScalef; external opengl32;
  1706. procedure glScissor; external opengl32;
  1707. procedure glSelectBuffer; external opengl32;
  1708. procedure glShadeModel; external opengl32;
  1709. procedure glStencilFunc; external opengl32;
  1710. procedure glStencilMask; external opengl32;
  1711. procedure glStencilOp; external opengl32;
  1712. procedure glTexCoord1d; external opengl32;
  1713. procedure glTexCoord1dv; external opengl32;
  1714. procedure glTexCoord1f; external opengl32;
  1715. procedure glTexCoord1fv; external opengl32;
  1716. procedure glTexCoord1i; external opengl32;
  1717. procedure glTexCoord1iv; external opengl32;
  1718. procedure glTexCoord1s; external opengl32;
  1719. procedure glTexCoord1sv; external opengl32;
  1720. procedure glTexCoord2d; external opengl32;
  1721. procedure glTexCoord2dv; external opengl32;
  1722. procedure glTexCoord2f; external opengl32;
  1723. procedure glTexCoord2fv; external opengl32;
  1724. procedure glTexCoord2i; external opengl32;
  1725. procedure glTexCoord2iv; external opengl32;
  1726. procedure glTexCoord2s; external opengl32;
  1727. procedure glTexCoord2sv; external opengl32;
  1728. procedure glTexCoord3d; external opengl32;
  1729. procedure glTexCoord3dv; external opengl32;
  1730. procedure glTexCoord3f; external opengl32;
  1731. procedure glTexCoord3fv; external opengl32;
  1732. procedure glTexCoord3i; external opengl32;
  1733. procedure glTexCoord3iv; external opengl32;
  1734. procedure glTexCoord3s; external opengl32;
  1735. procedure glTexCoord3sv; external opengl32;
  1736. procedure glTexCoord4d; external opengl32;
  1737. procedure glTexCoord4dv; external opengl32;
  1738. procedure glTexCoord4f; external opengl32;
  1739. procedure glTexCoord4fv; external opengl32;
  1740. procedure glTexCoord4i; external opengl32;
  1741. procedure glTexCoord4iv; external opengl32;
  1742. procedure glTexCoord4s; external opengl32;
  1743. procedure glTexCoord4sv; external opengl32;
  1744. procedure glTexEnvf; external opengl32;
  1745. procedure glTexEnvfv; external opengl32;
  1746. procedure glTexEnvi; external opengl32;
  1747. procedure glTexEnviv; external opengl32;
  1748. procedure glTexGend; external opengl32;
  1749. procedure glTexGendv; external opengl32;
  1750. procedure glTexGenf; external opengl32;
  1751. procedure glTexGenfv; external opengl32;
  1752. procedure glTexGeni; external opengl32;
  1753. procedure glTexGeniv; external opengl32;
  1754. procedure glTexImage1D; external opengl32;
  1755. procedure glTexImage2D; external opengl32;
  1756. procedure glTexParameterf; external opengl32;
  1757. procedure glTexParameterfv; external opengl32;
  1758. procedure glTexParameteri; external opengl32;
  1759. procedure glTexParameteriv; external opengl32;
  1760. procedure glTranslated; external opengl32;
  1761. procedure glTranslatef; external opengl32;
  1762. procedure glVertex2d; external opengl32;
  1763. procedure glVertex2dv; external opengl32;
  1764. procedure glVertex2f; external opengl32;
  1765. procedure glVertex2fv; external opengl32;
  1766. procedure glVertex2i; external opengl32;
  1767. procedure glVertex2iv; external opengl32;
  1768. procedure glVertex2s; external opengl32;
  1769. procedure glVertex2sv; external opengl32;
  1770. procedure glVertex3d; external opengl32;
  1771. procedure glVertex3dv; external opengl32;
  1772. procedure glVertex3f; external opengl32;
  1773. procedure glVertex3fv; external opengl32;
  1774. procedure glVertex3i; external opengl32;
  1775. procedure glVertex3iv; external opengl32;
  1776. procedure glVertex3s; external opengl32;
  1777. procedure glVertex3sv; external opengl32;
  1778. procedure glVertex4d; external opengl32;
  1779. procedure glVertex4dv; external opengl32;
  1780. procedure glVertex4f; external opengl32;
  1781. procedure glVertex4fv; external opengl32;
  1782. procedure glVertex4i; external opengl32;
  1783. procedure glVertex4iv; external opengl32;
  1784. procedure glVertex4s; external opengl32;
  1785. procedure glVertex4sv; external opengl32;
  1786. procedure glViewport; external opengl32;
  1787.  
  1788. function wglGetProcAddress;    external opengl32;
  1789.  
  1790. { OpenGL Utility routines (glu.h) =======================================}
  1791.  
  1792. function gluErrorString;                     external glu32;
  1793. function gluErrorUnicodeStringEXT;           external glu32;
  1794. function gluGetString;                       external glu32;
  1795. procedure gluLookAt;                         external glu32;
  1796. procedure gluOrtho2D;                        external glu32;
  1797. procedure gluPerspective;                    external glu32;
  1798. procedure gluPickMatrix;                     external glu32;
  1799. function  gluProject;                        external glu32;
  1800. function  gluUnProject;                      external glu32;
  1801. function  gluScaleImage;                     external glu32;
  1802. function  gluBuild1DMipmaps;                 external glu32;
  1803. function  gluBuild2DMipmaps;                 external glu32;
  1804. function  gluNewQuadric;                     external glu32;
  1805. procedure gluDeleteQuadric;                  external glu32;
  1806. procedure gluQuadricNormals;                 external glu32;
  1807. procedure gluQuadricTexture;                 external glu32;
  1808. procedure gluQuadricOrientation;             external glu32;
  1809. procedure gluQuadricDrawStyle;               external glu32;
  1810. procedure gluCylinder;                       external glu32;
  1811. procedure gluDisk;                           external glu32;
  1812. procedure gluPartialDisk;                    external glu32;
  1813. procedure gluSphere;                         external glu32;
  1814. procedure gluQuadricCallback;                external glu32;
  1815.  
  1816. function gluNewTess                         ;external glu32;
  1817. procedure gluDeleteTess                     ;external glu32;
  1818. procedure gluTessBeginPolygon               ;external glu32;
  1819. procedure gluTessBeginContour               ;external glu32;
  1820. procedure gluTessVertex                     ;external glu32;
  1821. procedure gluTessEndContour                 ;external glu32;
  1822. procedure gluTessEndPolygon                 ;external glu32;
  1823. procedure gluTessProperty                   ;external glu32;
  1824. procedure gluTessNormal                     ;external glu32;
  1825. procedure gluTessCallback                   ;external glu32;
  1826.  
  1827. function gluNewNurbsRenderer                ;external glu32;
  1828. procedure gluDeleteNurbsRenderer            ;external glu32;
  1829. procedure gluBeginSurface                   ;external glu32;
  1830. procedure gluBeginCurve                     ;external glu32;
  1831. procedure gluEndCurve                       ;external glu32;
  1832. procedure gluEndSurface                     ;external glu32;
  1833. procedure gluBeginTrim                      ;external glu32;
  1834. procedure gluEndTrim                        ;external glu32;
  1835. procedure gluPwlCurve                       ;external glu32;
  1836. procedure gluNurbsCurve                     ;external glu32;
  1837. procedure gluNurbsSurface                   ;external glu32;
  1838. procedure gluLoadSamplingMatrices           ;external glu32;
  1839. procedure gluNurbsProperty                  ;external glu32;
  1840. procedure gluGetNurbsProperty               ;external glu32;
  1841. procedure gluNurbsCallback                  ;external glu32;
  1842.  
  1843.  
  1844. begin
  1845.   Set8087CW($133F);
  1846. end.
  1847.